运行.py文件和直接与 Python 交互之间的时区差异



谁能告诉我为什么我在 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"解决了这个问题。

最新更新