2011-04-02 43 views
0

我用的TimeZoneInfo類工作,ifound一些奇怪的東西,下面的問題就是我的方案有關時區

時間存儲在UTC:{2011年3月29日上午11時三十分00秒}

現在,當我開始將其與以下兩種方法轉換到用戶的各個時區:

TimeZoneInfo.ConvertTimeFromUtc(date,TimeZoneInfo.ConvertTimeToUtc,{(UTC-05:00) Eastern Time (US & Canada)} 
Output: {3/29/2011 6:30:00 AM} 

方式二:

int offset= 
    Convert.ToInt32(,{(UTC-05:00) Eastern Time (US & Canada)} 
).BaseUtcOffset.TotalMinutes); 

dateTime.AddMinutes(offset); 

Output:+ {3/29/2011 7:30:00 AM} 

現在正如您所看到的那樣,這兩次之間是有區別的,我可以通過兩種方式知道差異的原因嗎?

回答

4

ConvertTimeFromUtc轉換時考慮夏令時的任何調整規則,而BaseUtcOffset返回時區的基準偏移量(沒有任何調整規則)。如果您希望特定時間的UTC偏移量(包括任何調整規則有效),請使用GetUtcOffset