5

My application is receiving some date information from WMI. This in the form of strings with the following format:

yyyymmddHHMMSS.mmmmmmsUUU

For more details on this format, see here. I'm interested in parsing everything before the period. I have the following code:

    string testDate = "20010701212212"; // July, 01, 2001 21:22:12, in the format specified above
    string format = "yyyyMMddHHmmSS";
    CultureInfo culture = CultureInfo.InvariantCulture;
    DateTime newDate = DateTime.ParseExact(date, format, culture);

This always fails on the call to ParseExact(), with an exception stating that "String was not recognized as a valid DateTime." What am I doing wrong here?

Odrade
  • 7,409
  • 11
  • 42
  • 65

2 Answers2

11

Use ManagementDateTimeConverter.ToDateTime()

Credit goes to Uros Calakovic from this question.

Community
  • 1
  • 1
Brian Low
  • 11,605
  • 4
  • 58
  • 63
4

That's almost correct. You want the following format string:

yyyyMMddHHmmss

i.e. Two-digit seconds is represented by lower-case "ss".

Noldorin
  • 144,213
  • 56
  • 264
  • 302