.NET中的时区问题

Mic*_*cah 1 c# timezone datetime .net-4.0

我在东海岸,所以我的时区Eastern Standard Time偏移了-05:00:00.但我喜欢调用方法时noticied DateTimeOffset.UtcNowDateTime.Now.ToUniversalTime()它只是声称我有一个偏移-04:00:00.

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
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,尽管它清楚地表明我处于"东部标准时间"区域,但它只计算我的偏移量-05:00:00.我也验证了我的Windows时钟说我在正确的时区.有谁知道这里发生了什么?

Dou*_*oug 8

可能与夏天有关.你现在不在东部夏令时吗?那是UTC减4.