2016-08-29 55 views
0

我有一個wep api託管在Azure中,它是.NET Core。現在是一個簡單的CRUD API。我有一個有趣的問題,我無法找到或理解原因。Azure Web API應用程序中缺少日期時間的時間偏移值

在我的api中,像往常一樣有一個DateTime屬性。當我發佈數據到api時,時間偏移在服務器端消失。

「日期時間」: 「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 
} 
+0

您是否從客戶端發佈日期時間或您的日期時間將直接從SQL Server或Azure服務器獲取? – dotnetstep

+0

我從上面的客戶端發帖 – Arda

+0

它立即轉換還是將其存儲在SQL服務器中,然後當您檢索它時轉換爲00:00? – dotnetstep

回答

1

所有蔚藍服務1.首先運行過程中出現的時區00:00。

  1. 如果您查看DateTime結構,它具有稱爲Kind的特殊屬性。在序列化/反序列化過程中,此屬性考慮在內。

    DateTime dt = DateTime.Now; // dt.Kind(Local,Utc等)。

    序列化的方式工作,它看起來在服務器端Json Serialziation設置此屬性。 這個選項也沒有幫助。

3.我發現的簡單和最佳解決方案是使用DateTimeOffset而不是DateTime。

+0

非常感謝...這是我的案例的合法解決方案。 – Arda