2013-05-22 30 views
1

我有一個MVC 3 Web應用程序的Web API,控制器發出JSON。 在JSON結果我看到日期被自動微軟AJAX序列化的日期與時間swift

序列化爲

{ 
Flag: "U" 
EventId: "168ef1d4-60ca-4fa1-b03b-8c3207650347" 
EventTitle: "test event 11" 
DateTimeStart: "/Date(1369217469310)/" 
IsCustomEvent: true 
Location: null 
} 

在JavaScript中,我需要DateTimeStart轉換人類可讀的格式,並使用此代碼

VAR日期=新的日期(1369217469310 ); alert(date);

我看到所得到的數據作爲

星期三2013年5月22 12點11分09秒GMT + 0200(CEST)

這爲1小時存儲在應用程序至極的日期的一個頭爲22/05/2013 11:11:09。

我想知道是哪裏的問題可能是,如何解決它:

  • 它是.NET中使用CEST至極的+1 UCT,在這種情況下如何設置UCT連載默認日期在0?
  • 使用JavaScript轉換日期時會出現問題嗎?

請讓他們知道如何解決它,謝謝!

+0

文章相關http://stackoverflow.com/questions/15411789/ms-json-date-serialization-and-daylight-saving-time – GibboK

+0

文章相關http://msdn.microsoft.com/en-我們/庫/ system.datetime.kind.aspx – GibboK

回答

1

我沒有足夠的信息來通知服務器端。通常,服務器端問題的來源可能是您應用程序中設置的CultureInfo。您可能會考慮將所有日期時間轉換爲UTC,然後再將其發送到瀏覽器。檢查DateTime.ToUniversalTime()方法。

在客戶端,您還可以修復區域時間和UTC之間的偏移量。沒有構建的功能可以執行此操作,但執行操作非常簡單。檢查下面的代碼。

var date = new Date(); 
var dateWithOffset = date.getTime() + date.getTimezoneOffset() * 60000;