Azure Web API 应用程序中缺少日期时间的时间偏移值

Time offset value of a datetime is missing in Azure Web API application

我有一个 wep api 托管在 Azure 中,它是 .NET Core。现在是一个简单的 CRUD api。我有一个有趣的问题,我无法找到或理解原因。

在我的api里,和往常一样有一个DateTime属性。当我post一个数据到api时,服务器端的时间偏移就消失了。

"dateTime":"2016-08-29T05:13:21.931+03:00" +03:00 变成 00:00

谁能解释一下原因和解决方法?

{
   "content":"Test Data",
   "location":{
      "name":"Some Location",
      "address":"",
      "latitude":41.0920448,
      "longitude":28.9444847
   },
   "owner":{
      "userName":"Some User",
      "name":null,
      "registrationType":0,
      "profilePictureURL":null
   },
   "dateTime":"2016-08-29T05:13:21.931+03:00",
   "createTime":"2016-08-29T05:13:21.7791051+00:00",
   "rankingPoint":0.0
}

1.First 的所有 Azure 服务都在 00:00 时区运行。

  1. 如果您查看 DateTime 结构,它有一个特殊的 属性 称为 Kind。在 serialization/deserialization 期间,此 属性 考虑在内。

    日期时间 dt = DateTime.Now; // dt.Kind(本地、Utc 等)。

    序列化的工作方式在服务器端 Json Serialziation 设置中看起来是这样的 属性。 这个选项也没什么用。

3。我发现的简单且最佳的解决方案是使用 DateTimeOffset 而不是 DateTime。