2012-02-21 49 views
1

當Web服務接受來自不同時區的請求時,處理DST值的最佳方法是什麼?如何在JavaScript中處理DST和時區

我的web服務接受採用ISO8601標準的日期字符串(2012-02-21T05:00:00.000-05:00)

我想解釋DST,但不希望維持或連接的開銷一個數據庫,用於獲取每個請求的DST,這些請求是從不同的時區進入我的服務器的。

我正在考慮的一種方法是使用服務器的默認DST設置,然後將每個請求轉換爲與我的服務器所在的時區相同的時區。然後,當處理完成時,將字符串轉換回時區客戶和回報。響應數據的轉換可以在服務器或客戶端上完成。

有什麼建議嗎?

+5

DST是在臀部一個笨疼痛。將所有內容存儲在GTM/UTC中,並在必要時根據需要進行轉換。 – 2012-02-21 15:40:46

回答

2

這是我會做的。在提交數據/時間之前,將字符串解析爲JavaScript對象。然後致電getTime()並提交該值。 getTime()返回自UTC時代以來的毫秒數,因此實際上它會標準化您的時間。然後,當您將數據返回給用戶時,將您的UTC毫秒值傳遞給Date對象的構造函數,並按照您的意思顯示時間。默認情況下,它將顯示在用戶的時區中。

3

你也可以看看XDate項目在Javascript中處理日期對象。這與JodaTime(在Java中)非常相似。非常容易使用和語義。