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

时间:2016-08-16 15:02:01

标签: c++ winapi timezone dst

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

除非它实际上没有告诉我目前的当地时区是否在夏令时。

就此而言,我在纽约,StandardBiasDaylightBias都与Bias说同样的话。

发生了什么?

1 个答案:

答案 0 :(得分:4)

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

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