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,NULL,TRUE);
2013年3月10日,凌晨2:10是一个不存在的时间,因为时间将提前一小时调整,而不是凌晨2点,它将是凌晨3点.
所以我的问题是,我的计时器会发生什么? (我似乎无法找到此案例的文档.)
解决方法
我怀疑你已经知道你的问题的答案,因为你的评论明确指出:
// Points _as absolute time_ to March 10th,at 2:10 AM
所以你知道SetWaitableTimer()的文档说:
Be sure to use a UTC-based absolute time,as the system uses UTC-based
time internally.
由于UTC不关心DST,您的计时器将于2013年3月10日当地时间凌晨3:10触发.