问题描述
许多国家/地区在CET
(欧洲中部时间)到CEST
(欧洲中部夏季时间) {1}} (夏令时)。
所以我认为Microsoft时区数据库会将DST
作为时区,但我只能找到CEST
。
CET的UTC偏移为+1
CEST的UTC偏移为+2
如果我仅使用另一个与CET
具有相同偏移量的时区会不会有问题?如果是这样,我还应该如何从数据库中获取CEST
时间?
解决方法
Microsoft Windows时区的标识符中包含单词“ Standard”(例如Pacific Standard Time
,Central Europe Standard Time
或 W. Europe Standard Time
)仍代表整个时区-包括可能处于夏令时(又称为“夏令时”)下。
您不应在DST期间选择其他时区。
只有一个警告:Windows计算机具有一个日期/时间设置,称为“自动调整夏令时”。默认情况下,此功能是打开的,在大多数情况下,永远不要关闭它。但是,如果用户已经将其关闭,则他们将无法从系统中了解如何正确应用夏时制。
在.NET中(如标记问题C#所示),此行为仅在Windows上通过使用系统本地时区的API(例如DateTime.Now
或TimeZoneInfo.Local
)出现。如果您通过标识符要求一个时区,则无论系统的DST设置如何,始终可以正确应用DST。