我有它返回一個json
這樣的服務:C#:無法解析正確的日期和時間設置爲當前系統時間區
[
{
"title":"First event",
"startDate":"\/Date(1495512000000-0400)\/",
"endDate":"\/Date(1495857540000-0400)\/",
}
]
我反序列化JSON輸出到列表中相對於模型我已經定義:
型號
public class EventModel
{
[JsonProperty("title")]
public string Title { get; set; }
[JsonProperty("startDate")]
public DateTime StartDate { get; set; }
[JsonProperty("endDate")]
public DateTime EndDate { get; set; }
}
C#deseria的代碼lization
我正在使用Newtonsoft.Json
包進行反序列化。
List<EventModel> lstEvent = new List<EventModel>();
lstEvent = JsonConvert.DeserializeObject<List<EventModel>>(await objMyServices.GetData());
所以,當我調試我得到以下輸出在兩個不同的時區這種情況下:
對於GMT + 5:30(加爾各答 - 印度):
開始時間:23 -05-2017 09:30:00
結束時間:27-05-2017九時29分零零秒
對於GMT-4:00(紐約):
開始時間:23-05-2017 00:00:00
結束時間:26-05-2017 23:59:00
因此,對於每一條記錄,開始時間不解析,當我切換到GMT-4:00(紐約)時的相應系統時區。 我在這裏錯過了什麼?
這不是Json的日期。 JSon日期根據ISO8601進行格式化。這是AJAX時代的一種非常古老的格式。一些*非常*舊的服務仍然使用它,雖然 –
此外,您使用DateTime可以是本地,UTC或未定義。返回日期的DateTimeKind屬性是什麼?如果在紐約將本地時間轉換爲相同的UTC時間,則它們的顯示方式會有所不同,但它仍然是同一時間。如果您沒有明確指定要使用什麼DateTimeKind –
@PanagiotisKanavos - 我相信它*應該*使用ISO8601,但它沒有任何要求:https:// stackoverflow。com/questions/10286204/the-right-json-date-format – CodeNaked