如何确定当前的当地时间是否为夏令时

How to find out if the current local time is in daylight savings

本文关键字:是否 夏令时 当地时间 何确定      更新时间:2023-10-16

GetTimeZoneInformation用各种有用的信息填充TIME_ZONE_INFO结构体。

但是它实际上并没有告诉我当前的当地时区是否为夏令时。

我在纽约,StandardBiasDaylightBiasBias说的是一样的。

怎么回事?

GetTimeZoneInformation的返回码包含您想要的信息。

根据MSDN:

如果函数成功,则返回下列值之一:

TIME_ZONE_ID_UNKNOWN
0
当前时区没有使用日光节约时间,因为没有转换日期或日光节约时间的自动调整被禁用。

TIME_ZONE_ID_STANDARD
1
系统在TIME_ZONE_INFORMATION结构体的StandardDate成员所覆盖的范围内运行。

TIME_ZONE_ID_DAYLIGHT
2
系统在TIME_ZONE_INFORMATION结构体的DaylightDate成员所覆盖的范围内运行。

如果函数因其他原因失败,例如内存不足错误,则返回TIME_ZONE_ID_INVALID。要获取扩展的错误信息,请调用GetLastError

请务必检查返回代码,以确保您收到的信息确实有效。