以下代码在本地计算机上运行正常。另一方面,在服务器上,它将日期改为1天。
JsonSerializer serializer = new JsonSerializer();
serializer.Converters.Add(new JavaScriptDateTimeConverter());
从数据库返回的值为:2010-09-16 00:00:00.000
JsonSerializer在本地提供2010-09-16,并在服务器上提供2010-09-15 ..
任何想法?
为了澄清问题我做了一个简单的测试;
string str = JsonConvert.SerializeObject(Convert.ToDateTime("2010-09-16 00:00:00.000"), new JavaScriptDateTimeConverter());
Response.Write(str);
此代码在不同的机器上产生不同的结果。为什么?
新日期(1284584400000)和新日期(1284588000000)或
Wed Sep 15 2010 23:00:00 and Thu Sep 16 2010 00:00:00
答案 0 :(得分:0)
这可能是一个时区问题。您的服务器位于不同的时区吗?是时区调整日期和时间吗?
答案 1 :(得分:0)
这是一个时区问题。默认情况下,JavaScriptDateTimeConverter使用UTC日期。您需要创建一个SerializerSettings对象,并设置
settings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Local;