13

我有一堆我想解析成 ac# DateTime 的 DateTime-Strings。

2009-06-18 02:10:31.296761+00
2009-06-18 02:13:34.049145+00
2009-01-06 23:52:21.510121+00
2009-06-18 02:17:57.268252+00
2010-01-22 03:31:26.512496+00
2009-06-18 01:32:37.930961+00

我目前正在尝试使用以下代码行获取 DateTime-Object:

DateTime.ParseExact(str, "yyyy-MM-dd HH:mm:ss.FFFK", CultureInfo.InvariantCulture, DateTimeStyles.None);

但我总是得到一个 System.FormatException。

4

1 回答 1

21

你不必做任何花哨的事情,一个简单的DateTime.Parse作品:

DateTime myDate1 = DateTime.Parse("2009-06-18 02:10:31.296761+00");
DateTime myDate2 = DateTime.Parse("2009-06-18 02:10:31.296761+03");

两条线都将起作用,并且生成的日期将考虑到偏移量。

这样做的原因是您提供的格式是标准日期时间格式之一,特别是通用可排序格式,而不是 ISO 8601。

ISO 8601 对应于往返格式,并使用“T”而不是“”来分隔日期和时间。

于 2013-10-17T07:48:47.567 回答