import time
print time.strftime("%a, %d %b %Y %I:%M %p %Z", time.gmtime())
我住在加利福尼亚。出于某种原因,此代码报告GMT中的时间,而不是遵守系统时区。我知道strftime知道我在太平洋,因为它仍然在最后打印'PST',但它仍然提前8小时。还有其他人注意到这一点吗?任何人都知道我的系统或我的代码有什么问题吗?
修改:
在命令行运行date
给我正确的日期。另外,我在两台不同的计算机(mac和linux)上运行它们,它们都提前8小时报告。您是否希望在使用strftime之前纠正时区?
答案 0 :(得分:28)
time.gmtime()
以UTC格式返回时间。您需要的是time.localtime()
,其中 时区感知。 time
module documentation中详细记录了此行为。
编辑:
要将任何time.time()
样式时间戳转换为struct_time
,您可以提供参数
time.localtime()
:
>>> print time.strftime("%a, %d %b %Y %I:%M:%S %p %Z", time.localtime(10.5))
Thu, 01 Jan 1970 02:00:10 AM EET
答案 1 :(得分:0)
要更改unix系统上的时区,请执行以下操作:
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
在/usr/share/zoneinfo/
中浏览以找到您想要的内容并更改上面的命令