2011-06-09 105 views
1

我在東海岸,所以我的時區是Eastern Standard Time,它的偏移量爲-05:00:00。但我在致電DateTimeOffset.UtcNowDateTime.Now.ToUniversalTime()等方法時,只會聲稱我的抵消值爲-04:00:00.NET中的時區問題

DateTime.Now 
// 6/8/2011 8:08:26 PM 

DateTime.UtcNow 
// 6/9/2011 12:08:26 AM 

DateTimeOffset.UtcNow 
// 6/9/2011 12:08:26 AM +00:00 

DateTime.Now.ToUniversalTime() 
// 6/9/2011 12:08:26 AM 

TimeZoneInfo.ConvertTimeToUtc(DateTime.Now) 
// 6/9/2011 12:08:26 AM 

TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now) 
// -04:00:00 

TimeZone.CurrentTimeZone.StandardName 
// Eastern Standard Time 

TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time").BaseUtcOffset 
// -05:00:00 

正如你甚至可以看到雖然上面清清楚楚地寫着我在「東部標準時間」區這只是計算我的偏移是-05:00:00。我也驗證了我的Windows時鐘顯示我處於正確的時區。有誰知道這裏發生了什麼?

+3

夏令時? – 2011-06-09 00:19:26

+0

如果是這樣,那麼在做覆蓋時我應該如何考慮這一點? – Micah 2011-06-09 00:21:18

+1

http://www.timeanddate.com/library/abbreviations/timezones/na/edt.html – 2011-06-09 00:22:05

回答

8

可能與夏天有關。你現在不在東部夏令時嗎?這就是UTC減4.

3

我認爲這是-4,因爲它目前是夏令時。