2009-11-03 108 views
1

带有Service Pack 2的我的XP系统似乎已经过渡到正常的非日光时间,但C++时间例程还没有。日期和时间属性工具告诉我现在是5:26上午CST但是localtime()和strftime()认为它是6:26CDT。自从日光转换以来,我重新链接了应用程序并重新启动了系统,但无济于事。如果在日期和时间属性时区选项卡中取消选中“自动调整夏令时更改时钟”复选框,C++例程将返回CST值。我承认有一个旧的2002 XP和Visual Studio。windows xp本地时间夏令时问题

+0

希望我的更新的答案有助于W /关于CRT。 – 2009-11-03 16:59:49

+0

没有收到有关此问题的任何提示,我编写了一组替换例程,用于在time_t - filetime - systemtime之间进行转换,然后对systemtime值进行操作的localtime和mktime等事情。我发现系统时间运行的例程在我的系统上正常工作。 – 2009-11-10 12:54:01

回答

1

也许实际的答案

啊你的Win XP的一个更旧的版本。我怀疑你没有更新到最新DST日期的Windows XP版本(它们在2007年发生了更改),或者它不能正常工作。我会考虑this hotfix

Here's a blog post about the changes for the CRT

+0

咦?我做到了,那就是问题所在! tm_isdst作为一个返回,即使它不是DST。 – 2009-11-03 13:58:39

+0

哦!大声笑。那很有意思。 – 2009-11-03 14:00:31

+0

@Doug:无论“日期和时间属性时区”选项卡中的“自动调整夏令时更改时钟”复选框的设置,GetTimeZoneInformation都会为我的时区返回360分钟的适当偏差。 – 2009-11-03 14:04:54