10

The default toString() method in datetimeoffset converts the time into string format but loses the milliseconds. Is there anyway to preserve it?

Yang
  • 6,682
  • 20
  • 64
  • 96

4 Answers4

22

ToString() takes a format argument. There are existing string format codes that will print milliseconds - take a look at the list here.

For example the format code "o" will print a full time string with milliseconds, or you can create your own format string to match your needs and use the "ffff" specifier to add milliseconds where appropriate.

myDateTime.ToString("o")
womp
  • 115,835
  • 26
  • 236
  • 269
7

You have to use "ffff" in the string format to get miliseconds, like:

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

Mitja

Mitja Bonca
  • 4,268
  • 5
  • 24
  • 30
3

You can do this using the f character in your format string.

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

Gives "23032011-16:58:36"

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

Gives "23032011-16:59:088562"

Swaff
  • 13,548
  • 4
  • 26
  • 26
3

According to the documentation of DateTimeOffset this behaves in most ways similar to ToString of the DateTime class. This means that you can for example use the standard format string o which shows the milliseconds, or you can use whatever custom format pattern you want.

So you can do this:

Console.WriteLine(dto.ToString("o"));
steinar
  • 9,383
  • 1
  • 23
  • 37