значение datetime.Сейчас.ToString ("yyyy-MM-dd hh:mm:ss") возвращает время AM вместо времени PM?


Я пытаюсь получить текущее время с помощью DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")

однако, это выплевывает время 12 часов от того, что мы хотим.

например:

что он выплевывает: 11/14/2011 2:24:56 am

что мы хотим: 11/14/2011 2:24:56 pm

что нуб ошибку мы делаем?

любая помощь очень ценится :)

2 67

2 ответа:

использовать HH для 24-часового формата часов:

DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")

или tt спецификатор формата для AM/PM детали:

DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt")

посмотри пользовательские строки формата даты и времени документация.

С C#6.0 у вас также есть новый способ форматирования даты при использовании интерполяции строк, например,

$"{DateTime.Now:yyyy-MM-dd HH:mm:ss}"

Не могу сказать, что он лучше, но он немного чище, если включить форматированную дату и время в более длинную строку.

подробнее о Строковой интерполяции.