2013年的夏令时(美国)于3月10日星期日凌晨2:00开始。所以,现在是2013年3月9日,我在已创建的等待计时器句柄上调用以下API:< / p>
FILETIME ftWhen = //Points as absolute time to March 10th, 2013, at 2:10 AM
SetWaitableTimer(hTimer, ftWhen, 0, NULL, NULL, TRUE);
March 10th, 2013, 2:10 AM
是一个不存在的时间,因为时间将提前一小时调整,而不是凌晨2点,它将是凌晨3点。
所以我的问题是,我的计时器会发生什么? (我似乎无法找到此案例的文档。)
答案 0 :(得分:7)
我怀疑你已经知道你问题的答案,因为你的评论明确指出:
// Points _as absolute time_ to March 10th, 2013, at 2:10 AM
因此,您知道SetWaitableTimer()的文档说:
请务必使用基于UTC的绝对时间,因为系统使用基于UTC的时间 内部时间。
由于UTC不关心DST,您的计时器将在March 10th, 2013, 3:10 AM
,当地时间上触发。
答案 1 :(得分:3)
SetWaitableTimer
期望pDueTime
以UTC格式提供;所以没有办法用这样一个不存在的日期/时间来调用它。