将UTC中的ISO字符串解析为DateTimeKind.UTC

时间:2014-09-30 21:57:45

标签: c# .net datetime

让我们说,我有一个这样的字符串 - " 2014-09-30T20:38:18.280",如何将其解析为DateTimeKind.Utc的DateTime字段。

当我执行DateTime.Parse(" 2014-09-30T20:38:18.280")时,它返回DateTimeKind.Unspecified中的日期时间。当我尝试在其上调用ToUniversalTime()时,它会调整UTC偏移量的时间。

我基本上想要" 2014-09-30T20:38:18.280"本身用UTC表示

1 个答案:

答案 0 :(得分:5)

解析时指定DateTimeStyles.AssumeUniversal

  

如果在解析的字符串中未指定时区,则假定该字符串表示UTC。

我也使用DateTime.ParseExact并指定不变文化:

var time = DateTime.ParseExact(text, "yyyy-MM-dd'T'HH:mm:ss.fff",
                               CultureInfo.InvariantCulture,
                               DateTimeStyles.AssumeUniversal);