它大约是“2013-02-27 11:02”(格林威治标准时间),因为我在法国,我的当地时间大约是“2013-02-27 12:02 +0100”。我在我的机器上播放了以下命令:
Python 2.6.8 (unknown, Apr 14 2012, 04:15:37)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> datefmt = '%Y-%m-%d %H:%M:%S %Z'
>>> paris_time = (time.gmtime(), time.localtime())
>>> paris_time[0]
time.struct_time(tm_year=2013, tm_mon=2, tm_mday=27, tm_hour=11, tm_min=2, tm_sec=2, tm_wday=2, tm_yday=58, tm_isdst=0)
>>> paris_time[1]
time.struct_time(tm_year=2013, tm_mon=2, tm_mday=27, tm_hour=12, tm_min=2, tm_sec=2, tm_wday=2, tm_yday=58, tm_isdst=0)
>>> time.strftime(datefmt, paris_time[0]), time.strftime(datefmt, paris_time[1])
('2013-02-27 11:02:02 CET', '2013-02-27 12:02:02 CET')
>>>
然后我将我的机器时区更改为“纽约”并重播了最后的命令:
>>> paris_time[0]
time.struct_time(tm_year=2013, tm_mon=2, tm_mday=27, tm_hour=11, tm_min=2, tm_sec=2, tm_wday=2, tm_yday=58, tm_isdst=0)
>>> paris_time[1]
time.struct_time(tm_year=2013, tm_mon=2, tm_mday=27, tm_hour=12, tm_min=2, tm_sec=2, tm_wday=2, tm_yday=58, tm_isdst=0)
>>> time.strftime(datefmt, paris_time[0]), time.strftime(datefmt, paris_time[1])
('2013-02-27 11:02:02 EST', '2013-02-27 12:02:02 EST')
>>>
有关信息:CET 是 +0100 的代码,EST 是 -0500 的代码。
python time.strftime(format[, t])文档在表中指出:
%Z 时区名称(如果不存在时区则无字符)。
“不存在时区”是什么意思?struct_time 对象中的时区(编辑:我最初在我的问题中写了“strftime 对象”)或系统中的时区?根据我的测试,我没有在对象 paris_time[x] 中设置时区,但显示了一个时区。那么,我在这里缺少什么?