2011-03-09 61 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; 
相關問題