2009-11-03 104 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