从Microsoft Windows时区数据库获取CEST时间

问题描述

许多国家/地区在CET(欧洲中部时间)到CEST(欧洲中部夏季时间) {1}} (夏令时)

所以我认为Microsoft时区数据库会将DST作为时区,但我只能找到CEST

CET的UTC偏移为+1

CEST的UTC偏移为+2

如果我仅使用另一个CET具有相同偏移量的时区会不会有问题?如果是这样,我还应该如何从数据库获取CEST时间?

解决方法

Microsoft Windows时区的标识符中包含单词“ Standard”(例如Pacific Standard TimeCentral Europe Standard Time W. Europe Standard Time)仍代表整个时区-包括可能处于夏令时(又称为“夏令时”)下。

您不应在DST期间选择其他时区。

只有一个警告:Windows计算机具有一个日期/时间设置,称为“自动调整夏令时”。默认情况下,此功能是打开的,在大多数情况下,永远不要关闭它。但是,如果用户已经将其关闭,则他们将无法从系统中了解如何正确应用夏时制。

在.NET中(如标记问题C#所示),此行为仅在Windows上通过使用系统本地时区的API(例如DateTime.NowTimeZoneInfo.Local)出现。如果您通过标识符要求一个时区,则无论系统的DST设置如何,始终可以正确应用DST。