夏令时开关中的问题

时间:2009-03-09 15:32:50

标签: c dst

我四年前写的一个程序,它的日期和时间如下:

get_the_date_and_time(char *string) 
{
    struct tm *now;
    time_t lt;
    lt = time(NULL);
    now = localtime(&lt);
    sprintf(string,asctime(now));
}

自从切换到夏令时后,它将返回一个小时的时间。

通过将系统日期更改为4月5日,我得到了正确的时间。

我们为所涉及的项目做了一个解决方案;这只是一个抬头。

我怀疑微软夏令时扩展的夏令时模式,如果没有破坏,有点受损。

1 个答案:

答案 0 :(得分:3)

由于2005年的能源政策法案(made DST a month longer from 2007 onwards),您的系统并不知道美国夏令时的变化。

您使用的是哪个版本的Windows,是否让它与Windows Update保持同步?

编辑:此外,这是静态还是动态链接,并且自从应用所有补丁等后重建了吗?虽然我希望希望它从操作系统获取信息,但如果您静态链接,可能会将其中的一些信息添加到您的可执行文件中。 (伊克。)