我有一个带有 DateTime 属性 (get;set;) 的对象,该对象位于 C# 中的集合 (List) 内。此属性保存 DateTime.MinValue 的值 (01/01/0001 12:00:00 AM)。
我正在使用 Newtsonsoft.Json.Net 库将我的对象集合序列化为 JSON,如下所示
JsonConvert.SerializeObject(collectionValues,
new JsonConverter[] { new JavaScriptDateTimeConverter() })
我的日期时间属性的转换输出是new Date(-62135578800000)
,在UTC-5中它给我一个日期“Mon Jan 01 1 00:00:00 GMT-0500 ",但在其他时区进行一些测试时,我的序列化仍然是 new Date(-62135578800000)
,但 javascript 中的输出却完全不同"Sun Dec 31 0 22:00: 00 GMT-0700"
我在 w3schools site 上运行了此测试更改我的计算机的时区。
当我的属性服务器端为 DateTime.MinValue 时,无论什么时区,如何始终返回 “Mon Jan 01 1 00:00:00” 的值?
最佳答案
检查DateTimeZoneHandling环境。我建议您始终以 UTC 序列化日期以避免此类冲突:
JsonConvert.SerializeObject(collectionValues, new JsonSerializerSettings
{
DateTimeZoneHandling = DateTimeZoneHandling.Utc
});
关于javascript - 不同时区的javascript日期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43477345/