5

我有一个字符串“2009-10-08 08:22:02Z”,它采用ISO 8601格式。

如何使用 DateTime 解析这种格式?

4

2 回答 2

18
string txt= "2009-10-08 08:22:02Z";
DateTime output = DateTime.ParseExact(txt, "u", System.Globalization.CultureInfo.InvariantCulture);

DateTime 类支持此格式的标准格式字符串u

我认为对于 ISO 格式(带有 T 分隔符),使用“s”而不是“u”。或使用:

string txt= "2009-10-08 08:22:02Z";
DateTime output = DateTime.ParseExact(txt, new string[] {"s", "u"}, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);

支持这两种格式。

于 2009-10-08T09:22:24.973 回答
6

不,它不是 ISO 8601。有效的 ISO 8601表示将包含T时间和日期部分。

DateTime可以原生处理有效的 ISO 8601 格式。但是,如果您坚持使用这种特定的表示形式,您可以尝试DateTime.ParseExact提供格式字符串。

于 2009-10-08T09:21:02.200 回答