gpt4 book ai didi

c# - IsDaylightSavingTime 奇怪的行为

转载 作者:行者123 更新时间:2023-11-30 18:18:06 25 4
gpt4 key购买 nike

为什么 IsDaylightSavingTime() 方法在特定时间范围内返回明显错误的值?明确地说,我从 UTC 日期开始。时间 new DateTime(2016, 10, 30, 0, 59, 0, DateTimeKind.Utc) 是 WEST 夏令时的最后一分钟。事实上,在西部,它给出了 2 小时的偏移(凌晨 2.59),而一分钟后有 1 小时的偏移(凌晨 2.00)。但是为什么:

TimeZoneInfo.ConvertTimeFromUtc(
new DateTime(2016, 10, 30, 0, 59, 0, DateTimeKind.Utc),
TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time")
).IsDaylightSavingTime()

返回错误?!

此方法从 new DateTime(2016, 10, 30, 0, 0, 0, DateTimeKind.Utc) 开始返回 false(但为什么呢?),之前的第二个,new DateTime (2016, 10, 29, 23, 59, 59, DateTimeKind.Utc),它返回 true。

TimeZoneInfo 方法似乎有效:

    var thisIsTrue = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time").IsDaylightSavingTime(new DateTime(2016, 10, 30, 0, 0, 0, DateTimeKind.Utc));

var thisIsFalse = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(2016, 10, 30, 0, 0, 0, DateTimeKind.Utc), TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time")).IsDaylightSavingTime();

最佳答案

ConvertTimeFromUtc 方法返回一个 DateTime 类型,该类型具有与使用 TimeZoneInfo 类型不同的 IsDaylightSavingTime 方法实现.

试试下面的代码...

var date = new DateTime(2016, 10, 29, 23, 59, 59, DateTimeKind.Utc);
var foo = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time").IsDaylightSavingTime(date);

关于c# - IsDaylightSavingTime 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42233478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com