【发布时间】:2015-07-28 23:14:13
【问题描述】:
我一直遇到 Web API 解析日期时间不正确的问题,我已追踪到 JSON.NET。
问题是,如果我发送这个日期时间:
2015-07-28T19:06:01.000+00:00
在 JSON PUT 请求中,在我的模型中解析的 DateTime 将转换为本地服务器时区中的时间,其中 C# datetime 类型是本地的,而不是 UTC。
如果我发送这个日期时间:
2015-07-28T19:06:01.000Z
它将正确地保持为 UTC,使用 C# datetime 类型的 UTC,这正是我想要的。
我可以通过像这样设置 DateTimeZoneHandling 来解决这个问题:
SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;
但我不明白为什么它首先会这样做。根据 ISO8601,Z 和 +00:00 应该是同一个意思吧?我担心将 DateTimeZomeHandling 设置为全局 UTC,因为我可能不希望端点上的每个日期都被视为 UTC。
是否有其他设置可以告诉它考虑 +00:00 表示 UTC?
【问题讨论】: