谁能告诉我为什么我在 Python 程序显示不正确的时间时遇到问题(它给了我 +5 小时)。
我的计算机已正确设置为 EST。例如,如果我进入cygdrive或cmd或powershell,然后打开python命令行并执行以下操作,我会得到正确的时间:
>>> from datetime import datetime
>>> print(datetime.now())
2018-05-15 20:29:28.360810
但是,如果我尝试在.py文件中运行同一行代码,并从cygdrive,cmd或powershell运行以下代码,则我得到错误的日期/时间:
---在'test.py'文件中---
from datetime import datetime
print(datetime.now())
蟒蛇 test.py
2018-05-16 01:29:49.636899
有什么线索是怎么回事吗?
顺便说一句,我在尝试导入pytz时也遇到错误,但是当我尝试安装 pip 时,我得到"要求已经满足",文件路径显示它的位置。仅供参考,比什么都重要。
谢谢!
看起来一个是从Windows安装中运行的,另一个是从cygwin中运行的。这表明Cygwin可能配置了不同的时区。
尝试在Cygwin中运行date
,以确认它与python显示的错误时间相匹配。然后看看这个答案,了解在Cygwin中设置时区的问题
Cygwin显示UTC时间而不是本地时间
我遇到了同样的问题。 Python程序在cmd环境中运行时提供正确的时间。 在cygwin下运行的同一个python程序给了伦敦时间。 而 回声$TZ给出 美洲/Los_Angeles Cygwin中的命令"date"给了波特兰时间。
基于另一个答案,cygwin窗口中的"unset TZ"解决了这个问题。