如何确定给定日期是否在.NET 2.0中给定时区的夏令时?

时间:2008-09-04 21:11:43

标签: .net .net-2.0 timezone medium-trust

我在.NET 2.0上,在中等信任下运行(所以TimeZoneInfo并且不允许注册表选项)。我要求用户提供两个日期和一个时区,并且非常希望能够自动确定是否需要调整DST的时区。

这可能甚至不是一个有效的场景,除非我有一些非常强大的支持,la TimeZoneInfo,以便首先区分所有不同类型的时区

5 个答案:

答案 0 :(得分:2)

在.NET 2.0中,您必须自己编写代码。它涉及研究各个地区的夏令时法律,并将其构建到您自己的数据结构中。如果您只关心时区的一个子集,例如仅在美国,问题就会有所简化,但是如果您需要所有全球时区,那么您需要做很多工作,然后必须每次都更新代码。法律改变的几年。即使是最新版.NET中的新时区对象也需要Windows更新,以便在法律发生变化时保持正确。

查看hereherehere了解详情。

答案 1 :(得分:2)

TZ Database是时区规则的公共域数据库,维护得很好。它们提供的数据也有编译格式,有许多库可用于读取编译数据,如下所示:ZoneInfo (tz database / Olson database) .NET API

答案 2 :(得分:2)

优秀的时区库:TZ4Net

答案 3 :(得分:0)

好吧,由于TimeZoneInfo被排除在外,你可能不会在框架中找到解决方案(但不要引用我的内容)。

在哪种情况下,您是否考虑过反映TimeZoneInfo课程并使用您在那里找到的内容?

答案 4 :(得分:0)

@ Domenic,我考虑过了,但我更愿意保持合法,而且我很确定无论如何都必须将信息嵌入到框架中,或者在某些偷偷摸摸的情况下从注册表中获取信息不需要权限的方式...