Python:strftime,gmtime不尊重timezon

2024-06-02 09:50:16 发布

您现在位置:Python中文网/ 问答频道 /正文

import time
print time.strftime("%a, %d %b %Y %I:%M %p %Z", time.gmtime())

我住在加利福尼亚。出于某种原因,此代码以GMT格式报告时间,而不是按照系统时区。我知道strftime知道我在太平洋,因为它在最后仍然打印“PST”,但它仍然是8小时前。还有人注意到了吗?有人知道我的系统或代码有什么问题吗?

编辑: 在命令行运行date会给出正确的日期。另外,我在两台不同的计算机(mac和linux)上运行了这个程序,它们都提前8小时报告。在使用strftime之前,是否需要更正时区?


Tags: 代码命令行import编辑time系统格式报告
2条回答

^{}返回UTC格式的时间。你需要的是^{},它可以感知时区。这种行为在^{} module documentation中有很好的记录。

编辑:

要将任何time.time()样式的时间戳转换为struct_time,可以为 ^{}

>>> 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

要更改unix系统上的时区,请执行以下操作:

ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

/usr/share/zoneinfo/中浏览以查找所需内容并更改上面的命令

相关问题 更多 >