В С#, как я могу получить текущую DateTime в следующем формате? 2011-08-10T21: 36: 01.6327538Z
С# - форматирование текущего времени
Ответ 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")