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

gov*_*vin 1 .net c# 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

Jon*_*eet 5

指定DateTimeStyles.AssumeUniversal解析时间.

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

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

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