为什么DateTime.ParseExact不用尾随Z解析UTC格式?

时间:2011-07-08 19:38:53

标签: .net datetime datetime-format datetime-parsing

另一个ParseExact问题。我正在尝试将UTC格式的字符串解析为日期时间,格式为:

"YYYY-MM-DDThh:mm:ss.ssZ"

是UTC格式,尾随Z.由于某种原因,我无法解析它。我尝试过“u”,“s”,“o”自定义格式字符串,以及几个DateTimeStyles以及手写。文化是不变的。

由于某种原因,它不喜欢Z,这表示它是一个UTC字符串。当我删除它,解析。我很高兴地满意地摆脱了尾随的Z,因为我知道它们是UTC日期时间字符串,但我不能。有什么想法吗?

1 个答案:

答案 0 :(得分:18)

您提到的格式字符串是standard format strings。您应该使用custom format string,如下所示:

DateTime.ParseExact("2011-03-02T20:15:19.64Z", "yyyy-MM-ddTHH:mm:ss.ffK", null).ToUniversalTime()

如果您未将ToUniversalTime()放在最后,结果将转换为您当地的时区。