Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不同时区的javascript日期存在问题_Javascript_C#_Json_Datetime_Json.net - Fatal编程技术网

不同时区的javascript日期存在问题

不同时区的javascript日期存在问题,javascript,c#,json,datetime,json.net,Javascript,C#,Json,Datetime,Json.net,我有一个具有DateTime属性get的对象;设置它位于C中的集合列表中。此属性保存DateTime.MinValue 01/01/0001 12:00:00 AM的值 我正在使用Newtsonsoft.Json.Net库将我的对象集合序列化为Json,如下所示 JsonConvert.SerializeObject(collectionValues, new JsonConverter[] { new JavaScriptDateTimeConverter() }) datetime

我有一个具有DateTime属性get的对象;设置它位于C中的集合列表中。此属性保存DateTime.MinValue 01/01/0001 12:00:00 AM的值

我正在使用Newtsonsoft.Json.Net库将我的对象集合序列化为Json,如下所示

JsonConvert.SerializeObject(collectionValues,
    new JsonConverter[] { new JavaScriptDateTimeConverter() })
datetime属性的转换输出是new Date-62135578800000,在UTC-5中,它给我的日期是Mon Jan 01 00:00:00 GMT-0500,但在其他时区进行一些测试,我的序列化仍然是new Date-62135578800000,但javascript的输出与Sun Dec 31 0 22:00:00 GMT-0700大不相同

我在改变电脑时区的电脑上运行了这个测试

当我的属性服务器端为DateTime.MinValue时,如何始终返回Mon Jan 01 1 00:00:00的值,而不管是哪个时区?

检查设置。我建议您始终使用UTC序列化日期,以避免此类冲突:

JsonConvert.SerializeObject(collectionValues, new JsonSerializerSettings
{
    DateTimeZoneHandling = DateTimeZoneHandling.Utc
});

为什么?这两次是一样的。第一个是EST,第二个是MST。为什么你要比较字符串,那么你应该比较DateTime。我不理解你的评论。我不是在比较字符串。我只是把新日期产生的输出-62135578800000。在我的客户端代码中,我直接使用DateTime类型,但如果我的用户PC时区发生变化,则由于javascript中的年份错误,应用程序会给出不同的输出。这正是它在不同时区时的工作方式。转换为UTC并不能解决这个问题,因为它将把每一天都推到下一年。