【发布时间】:2010-11-26 23:13:00
【问题描述】:
我想在 DST 转换期间计算 4 小时后的时间,无论是进入 DST 还是退出 DST。
目前正在这样做:
DateTime now = DateTime.now();
DateTime later = now.AddHours(4);
System.Console.WriteLine(now + " isDST " + now.IsDaylightSavingTime());
System.Console.WriteLine(later + " isDST " + later.IsDaylightSavingTime());
提供:
11/1/2009 12:45:54 AM isDST True
11/1/2009 4:45:54 AM isDST False
我想看到的是:
11/1/2009 12:45:54 AM isDST True
11/1/2009 3:45:54 AM isDST False
我发现这样做的“最佳”方式是像这样通过 UTC 往返:
DateTime now = DateTime.now();
DateTime later = now.ToUniversalTime().AddHours(4).ToLocalTime;
System.Console.WriteLine(now + " isDST " + now.IsDaylightSavingTime());
System.Console.WriteLine(later + " isDST " + later.IsDaylightSavingTime());
似乎我应该能够向 AddHours() 指定返回的时间应该是经过时间或显示时间。我错过了什么?
【问题讨论】: