如果某个国家/地区更改其夏令时设置,TimeZoneInfo 会发生什么情况?
What happens to TimeZoneInfo if a country changes it's Daylight savings settings?
在 .Net 中有一个 TimeZoneInfo
class 可以将 DateTime
s 从一个 TZ 转换为另一个 TZ,并且这样做时考虑到了夏令时。
我猜,在内部,.Net 只是硬编码了有关夏令时开始和结束时间的所有数据。
我的问题是 - 如果我有一个应用程序使用 TimeZoneInfo
在 TZ 和某个国家/地区之间进行转换,则它的夏令时设置(或“政策”或人们称之为的任何东西)是反映的唯一方法我的应用程序中的更改是手动设置该国家/地区的检查或应用一些 .Net 更新?
此外,由于夏令时是针对每个国家/地区的,并且 TimeZoneInfo
与时区一起使用,我如何告诉它根据特定国家/地区转换时间?我只能看到一个带有时区 ID 的构造函数。
根据包的不同,时区数据来自您的 OS,因此包将在 OS 更新时更新。这也是 SQL 服务器的工作方式。例如,美国国会在 2000 年代中期更改了 DTS,我们不得不向客户发布 Windows 更新,以确保我们的代码 运行 具有正确的时间。每当发生这种情况时,必须更新一些 NuGet 库。例如,TimeZoneConverter 会在时区更改时更新。
注意:DTS 和时区受法律控制,因此没有算法或公式来确定它们。美国的一些地区,夏威夷和亚利桑那(但不是全部),根本没有 DTS。
在 .Net 中有一个 TimeZoneInfo
class 可以将 DateTime
s 从一个 TZ 转换为另一个 TZ,并且这样做时考虑到了夏令时。
我猜,在内部,.Net 只是硬编码了有关夏令时开始和结束时间的所有数据。
我的问题是 - 如果我有一个应用程序使用 TimeZoneInfo
在 TZ 和某个国家/地区之间进行转换,则它的夏令时设置(或“政策”或人们称之为的任何东西)是反映的唯一方法我的应用程序中的更改是手动设置该国家/地区的检查或应用一些 .Net 更新?
此外,由于夏令时是针对每个国家/地区的,并且 TimeZoneInfo
与时区一起使用,我如何告诉它根据特定国家/地区转换时间?我只能看到一个带有时区 ID 的构造函数。
根据包的不同,时区数据来自您的 OS,因此包将在 OS 更新时更新。这也是 SQL 服务器的工作方式。例如,美国国会在 2000 年代中期更改了 DTS,我们不得不向客户发布 Windows 更新,以确保我们的代码 运行 具有正确的时间。每当发生这种情况时,必须更新一些 NuGet 库。例如,TimeZoneConverter 会在时区更改时更新。
注意:DTS 和时区受法律控制,因此没有算法或公式来确定它们。美国的一些地区,夏威夷和亚利桑那(但不是全部),根本没有 DTS。