2011-03-09 104 views
2

下面的代码在本地机器上正常工作。另一方面,在服务器上,它将日期离开一天。JavaScriptDateTimeConverter在服务器上给出了不同的结果

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); 

此代码在不同的机器上产生不同的结果。为什么?

新的Date(1284584400000)和新的日期(12845.88亿),或

星期三2010年9月15日23:00:00和Thu 2010年9月16日00:00:00

+0

可能重复[出了什么问题Java的日期和时间API?](http://stackoverflow.com/questions/1969442/whats-wrong-with-java -date-time-api) – 2014-02-03 23:04:17

回答

0

这可能是一个时区的问题。你的服务器在不同的时区吗?是时区调整日期和时间吗?

+0

我检查了时区。他们两人都是一样的。 – Yusuf 2011-03-09 07:30:19

0

这是一个时区问题。默认情况下,JavaScriptDateTimeConverter使用UTC日期。您需要创建一个SerializerSettings对象,并设置

settings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Local; 
相关问题