C # конвертировать datetimeoffset в строку с миллисекундами - PullRequest
8 голосов
/ 23 марта 2011

Метод toString () по умолчанию в datetimeoffset преобразует время в строковый формат, но теряет миллисекунды.Есть ли способ его сохранить?

Ответы [ 4 ]

19 голосов
/ 23 марта 2011

ToString() принимает аргумент формата.Существуют коды формата строки, которые будут печатать миллисекунды - посмотрите список здесь .

Например, код формата "o" напечатает строку полного времени с миллисекундами, илиМожно создать собственную строку формата в соответствии с вашими потребностями и использовать спецификатор "ffff", чтобы добавить миллисекунды, где это необходимо.

myDateTime.ToString("o")
6 голосов
/ 23 марта 2011

Вы должны использовать «ffff» в строковом формате, чтобы получить миллисекунды, например:

DateTime date = DateTime.Now;
 string strDate = String.Format("{0:dd.MM.yyyy hh:mm.ss:ffff}", date);

Mitja

3 голосов
/ 23 марта 2011

В соответствии с документацией из DateTimeOffset это ведет себя во многом аналогично ToString класса DateTime . Это означает, что вы можете, например, использовать стандартную строку формата o, которая показывает миллисекунды, или вы можете использовать любой шаблон пользовательского формата , который вы хотите.

Так что вы можете сделать это:

Console.WriteLine(dto.ToString("o"));
2 голосов
/ 23 марта 2011

Вы можете сделать это, используя символ f в строке формата.

DateTimeOffset.Now.ToString("ddMMyyy-HH:mm:ss")

Дает 23032011-16: 58: 36 "

DateTimeOffset.Now.ToString("ddMMyyy:HHmmssffff")

Дает 23032011-16:59: 088562"

...