【发布时间】:2021-01-08 04:00:18
【问题描述】:
我试图了解 .net 如何处理夏令时。当我调用IsDaylightSavingTime 方法并传递日期实例时,它为今天的日期返回true。如果我在同一日期实例上调用 DateTime 的 IsDaylightSavingTime 方法,它会返回 false。
为什么同一日期实例会得到不同的结果?
public static void Main()
{
var zone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
var utcNow = DateTime.UtcNow;
var pacificNow = TimeZoneInfo.ConvertTimeFromUtc(utcNow, zone);
Console.WriteLine(zone.IsDaylightSavingTime(pacificNow)); // Prints True
Console.WriteLine(pacificNow.IsDaylightSavingTime()); // Prints False
}
这里是小提琴的link。
【问题讨论】: