我使用Python 2.5.1中的以下代码从日期的字符串表示形式生成UTC时间戳:
time.mktime(time.strptime("2009-06-16", "%Y-%m-%d")) 一般的结果是: 1245103200 (16.6.20090:00UTC或15.6.0922:00:00,如果你在我的时区)。
但现在,我发现在一些运行Windows XP的计算机上,此语句会生成时移1小时1分1秒: 1245099539 (15.6.200922:58:59UTC或15.6.0920:58:59在我的时区)。
DST和时区似乎不是问题的原因,因为时移似乎出现在DST和时区计算之外。
有没有人经历过同样的行为,或者能够描述这里发生的事情?
发布于 2009-08-11 11:00:45
我自己找到了答案:
在python命令行界面上执行以下命令时,我得到了结果:
time.strptime("2009-06-16","%Y-%m-%d")
time.struct_time(tm_year=2009,tm_mon=6,tm_mday=16,tm_hour=0,tm_min=0,tm_sec=0,tm_wday=1,tm_yday=167,tm_isdst=-1)
如果我在使用py2exe构建的可执行文件中运行相同的命令,它会导致以下时间结构:
小时(tm_year=2009,tm_mon=8,tm_mday=11,tm_time.struct_time=-1,tm_min=-1,tm_time.struct_time=-1,tm_wday=1,tm_yday=224,tm_isdst=-1)
内部时间结构在命令行和使用py2exe时的初始化明显不同。已通过向命令添加午夜时间修复此问题。
发布于 2009-08-06 13:16:32
您运行的是什么版本的Python?这里有两个bug描述,听起来与您正在经历的非常相似:
https://stackoverflow.com/questions/1238648
复制相似问题