datetime.now()
和datetime.today()
在我的电脑上返回的是UTC时间,尽管文档中说它们应该返回本地时间。
这是我运行的脚本:
#!/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时间转换为本地时间,例如在“使用Python标准库将Python UTC时间转换为本地时间?”中讲解的那些方法。然而,我想了解根本问题的原因,并不是在寻找解决自己代码问题的方法。
回复@jwodder的评论:
执行后的输出为:
print(time.altzone)
print(time.timezone)
print(time.tzname)
-3600
0
('Ame', 'ric')
time.tzname
和相关常量有什么值? - jwodderdate
显示我的时区;如果你执行date -R
,它会显示什么? - Nick T'Ame', 'ric'
是America
的开头。不知道怎么会这样。在我的电脑上,time.tzname
返回的是('Pacific Standard Time', 'Pacific Daylight Time')
。你没有指定你的操作系统等信息,但需要找出在你的系统上如何设置时区... - Stephen Rauch