【问题标题】:Parsing an ISO string in UTC to DateTimeKind.UTC将 UTC 中的 ISO 字符串解析为 DateTimeKind.UTC
【发布时间】:2014-11-25 16:05:59
【问题描述】:

假设我有一个这样的字符串 - “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 表示

【问题讨论】:

标签: c# .net datetime


【解决方案1】:

解析时指定DateTimeStyles.AssumeUniversal

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

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

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

【讨论】:

    猜你喜欢
    • 2020-09-27
    • 2019-03-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    相关资源
    最近更新 更多