在ISO中将ISO 8601字符串解析为DateTime?

时间:2009-10-08 09:17:19

标签: .net datetime iso8601

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

如何使用DateTime解析此格式?

2 个答案:

答案 0 :(得分:19)

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

DateTime类支持此格式的standard format string

我认为对于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);

支持两种格式。

答案 1 :(得分:5)

不,它不是ISO 8601. Valid ISO 8601表示在时间和日期部分之间会有T

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