声明
在this question looked like a potential duplicate期间,通过引用IsAmbiguousTime
解决了问题。这并没有解决我的问题,因为我注意到差异的时间并不明确。
问题,然后......
虽然timeanddate.com说摩洛哥在今年4月3日到7月31日之间观察到了夏令时,worldtimeserver.com提供的当前时间似乎暗示了这种情况,但TimeZoneInfo
确实如此不报告卡萨布兰卡时间与2011年有任何AdjusmentRules
或AmbiguousTimeOffsets
。
确实,将我的计算机时钟设置为卡萨布兰卡时间,它会将当前时间设置为比卡萨布兰卡当前时间提前一小时的在线资源。
.NET库在这方面是不准确的,还是所有其他来源都有错?鉴于.NET库在这里是不准确的来源,这是一个常见的问题吗?事实上,我发现这个实例只是因为.NET枚举中第一个时区中出现的差异是令人不安的。这是基于我可以自己更新的本地数据库吗?
答案 0 :(得分:2)
看起来摩洛哥可能决定在今年之后放弃夏令时。微软似乎已经开枪并早早取消了DST。
如果您查看此链接,请注意他们说2012年之后没有DST更改。
http://www.timeanddate.com/worldclock/timezone.html?n=60
正如DocMax所说,DST是从操作系统计算出来的,因此这不是.NET问题。这是一个Windows问题。
答案 1 :(得分:1)
如TimeZoneInfo.GetSystemTimeZones的MSDN条目所述,.NET从注册表中获取其信息。搜索Microsoft Support for DST会显示相当活跃的时区更新历史记录。不幸的是,自去年12月以来没有卡萨布兰卡的更新,12月的更新听起来就像它取消了摩洛哥的夏令时设置。
答案 2 :(得分:0)
最新更新: 来自Microsoft Tech Community
2018年11月更新解决了夏令时(DST) 摩洛哥王国和俄罗斯伏尔加格勒的变化。
摩洛哥王国决定永久保留UTC + 01:00, 而不是像以前一样返回2018年10月28日的UTC + 00:00 沟通。
也:
要反映这些更改,Windows 10客户应确保他们拥有 安装的最新更新。 Windows 10更新