Подтвердить что ты не робот

С# - форматирование текущего времени

В С#, как я могу получить текущую DateTime в следующем формате? 2011-08-10T21: 36: 01.6327538Z

4b9b3361

Ответ 1

DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ")

Имейте в виду, что DateTime.Now иногда бывает точным до тысячной секунды, в зависимости от системных часов. Эта страница показывает следующее:

Можно отображать очень маленькие дробные единицы секунды, например десять тысячных доли секунды или сотни тысячных доли секунды. Однако эти значения могут не иметь смысла. Точность значений даты и времени зависит от разрешения системных часов. В Windows NT 3.5 и более поздних версиях и операционных системах Windows Vista разрешение часов составляет приблизительно 10-15 миллисекунд.

Однако, если вы заселяете DateTime самостоятельно, вы можете сделать его более точным. Я не знаю других встроенных библиотек, которые точнее, чем DateTime.UtcNow.

Кроме того, DateTime.UtcNow.ToString("o") предоставит вам порядковую строку datetime. Это не указывает часовой пояс в конце, поэтому вам все равно нужно добавить Z в конец, если вы имели дело с Utc

Ответ 2

Если вы хотите, чтобы ваше время в UTC (что и подразумевает Z), вам нужно убедиться, что они UTC раз...

то есть.

DateTime.UtcNow.ToString("O");

или при условии, что вы знаете, что ваше время-время является локальным...

DateTime foo = MethodThatReturnsALocalTime();
foo.ToUniversalTime().ToString("O");

FWIW: DateTime.UtcNow работает быстрее, чем DateTime.Now, потому что ему не нужно выполнять поиск по часовому поясу, на Compact Framework, по какой-то причине разница может быть очень заметной.

Ответ 3

Попробуйте следующее:

    var xs = DateIime.Now;
    var frmtdDatetime = xs.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffff");

и проверьте ссылку msdn

Ответ 4

Вы можете попробовать:

DateTime.Now.ToString("o");

который также включает компонент часового пояса. - ИЛИ -

DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff")