【发布时间】:2018-05-13 18:30:33
【问题描述】:
datetime.now() 和 datetime.today() 在我的计算机上返回 UTC 时间,即使 the documentation 说他们应该返回本地时间。
这是我运行的脚本:
#!/usr/bin/python
import time
import datetime
if __name__ == "__main__":
print(datetime.datetime.now())
print(datetime.datetime.today())
print(datetime.datetime.fromtimestamp(time.time()))
这是输出:
2017-11-29 22:47:35.339914
2017-11-29 22:47:35.340399
2017-11-29 22:47:35.340399
运行date之后的输出是:
Wed, Nov 29, 2017 3:47:43 PM
为什么我的安装返回时间是 UTC?
我该怎么做才能让这些函数返回本地时间?
PS我们在 MST,即 UTC-7。
PS 2 我知道有一些方法可以将 UTC 时间转换为本地时间,例如 Convert a python UTC datetime to a local datetime using only python standard library? 中解释的那些方法。但是,我试图了解根本问题的原因,而不是在自己的代码中寻找修补问题的方法。
回应@jwodder 的评论:
执行的输出
print(time.altzone)
print(time.timezone)
print(time.tzname)
是:
-3600
0
('Ame', 'ric')
【问题讨论】:
-
@rassar,感谢您的链接。它有有用的信息,但没有回答我的问题。
-
您系统的时区可能设置为 UTC。
time.tznameand friends 有什么价值? -
date显示时区;如果你这样做date -R那说明了什么? -
您的时区绝对是水管。我猜
'Ame', 'ric'是America的开始。不知道那是怎么发生的。在我的机器上time.tzname我得到('Pacific Standard Time', 'Pacific Daylight Time')。您没有指定您的操作系统等,但跟踪您的系统上的时区是如何设置的...
标签: python python-3.x datetime