c++ - 当为不存在的日期/时间设置 CreateWaitableTimer 时会发生什么?

标签 c++ winapi timer dst

2013 年的夏令时(美国)从 3 月 10 日星期日凌晨 2:00 开始。也就是说,现在是 2013 年 3 月 9 日,我在已创建的可等待计时器句柄上调用以下 API:

FILETIME ftWhen = //Points as absolute time to March 10th, 2013, at 2:10 AM
SetWaitableTimer(hTimer, ftWhen, 0, NULL, NULL, TRUE);

2013 年 3 月 10 日,凌晨 2:10 是一个不存在的时间,因为时间将提前一小时调整,所以不是凌晨 2 点,而是凌晨 3 点。

所以我的问题是,我的计时器会怎样? (我似乎找不到这种情况的文档。)

最佳答案

我怀疑您已经知道问题的答案,因为您的评论明确指出:

// Points _as absolute time_ to March 10th, 2013, at 2:10 AM

因此您知道 SetWaitableTimer() 的文档说:

Be sure to use a UTC-based absolute time, as the system uses UTC-based time internally.

由于 UTC 不关心夏令时,您的计时器将在 2013 年 3 月 10 日凌晨 3:10 触发,您的本地时间

关于c++ - 当为不存在的日期/时间设置 CreateWaitableTimer 时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15860800/

相关文章:

c - 将编辑控件的宽度和高度设置为 100%

javascript - 清除倒计时器

c - 选择性重复 ARQ 中的定时器

c++ - 小牛之后Eclipse停止编译

c++ - 使用 WinAPI 检索类指针?

winapi - 如何从 PNG 创建图像列表?

php - 基于用户输入的计时器 PHP

c++ - fwrite 在大数据上失败

c++ - 使用 "time.h"时崩溃

c++ - 即时创建和写入 vector