我在東海岸,所以我的時區是Eastern Standard Time
,它的偏移量爲-05:00:00
。但我在致電DateTimeOffset.UtcNow
和DateTime.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時鐘顯示我處於正確的時區。有誰知道這裏發生了什麼?
夏令時? – 2011-06-09 00:19:26
如果是這樣,那麼在做覆蓋時我應該如何考慮這一點? – Micah 2011-06-09 00:21:18
http://www.timeanddate.com/library/abbreviations/timezones/na/edt.html – 2011-06-09 00:22:05