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

Kay*_*aya 5 .net datetime iso8601

我有一个字符串,"2009-10-08 08:22:02Z",它是ISO 8601格式.

如何使用DateTime来解析此格式?

JDu*_*ley 19

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

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);
Run Code Online (Sandbox Code Playgroud)

支持这两种格式.


Ant*_*lev 5

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

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

  • 干杯但维基显示两种格式 (3认同)
  • 我无法使用"u"或"s"解析我的字符串,但是用空格替换T很容易.这似乎有效.我正在使用VB .NET和.NET 2.0. (2认同)