2011-10-05 39 views
0

我的問題是:我有很多數據包含日期時間(在本地時間),我需要將其轉換爲UTC。它看起來如此:我需要保存在數據庫中才能轉換爲UTC?

class Data 
{ 
    int id; //Some id for database 
    DateTime time; //Time in local time, i need to convert it to utc 
} 

//Converting: 
1)Find this id in database and extract some info (which excatly?) 
2)Convert time to UTC 

我的問題是:我需要保持在數據庫中,以便正確地轉換時間,這類型的數據?

我的版本是:在本地時間和utc之間保持一個小時的整數差,並通過將它添加到本地時間進行轉換。但這是否合適?

+0

將您的應用程序實際上是跨多個時區中運行時? – Pete

回答

0

保留一個整數差是不夠的,因爲這不區分夏令時(DST)和非DST。

最好的辦法是保持一個時區。通用和很好支持的時區系統是Olson Tz

他們是大城市的名稱,這是代表時區的引用。例如Pasific Time將是America \ Los_Angeles。請注意,這包括基於存儲日期的日光和非日光。所以你不需要知道白天什麼時候開始玩 - 這是納入奧爾森時區。

請看here

1

普遍接受的解決辦法是始終將存儲UTC日期時間,然後將其轉換爲本地時間加載或者向用戶顯示

相關問題