繁体   English   中英

Python - datetime.now() 返回不正确的时间

[英]Python - datetime.now() returns incorrect time

我想在我的数据库中存储一个操作的时间戳。 问题是我从datetime.datetime.now()得到的时间不正确(我猜这是由于时区)。 我尝试使用 python 在终端中获取值并得到正确的结果。

import datetime 
datetime.datetime.now()//correct time

但是,如果我在问题执行期间打印结果,则输出不正确,结果会提前两个小时。

为什么会这样,终端给了我正确的时间但程序实例没有,我怎样才能在我的程序中获得正确的时间?

编辑:终端的日期时间:

2018-08-30 17:41:04.413187

程序实例的日期时间:

2018-08-30 14:42:31.761310

编辑:

我注意到当我运行程序时我有这个警告。

RuntimeWarning: DateTimeField Policy.last_update received a naive datetime (2018-08-30 15:16:23.689896) while time zone support is active.
  RuntimeWarning)

尝试根据您所在的时区调整小时数:

import datetime 

datetime.datetime.utcnow()+datetime.timedelta(hours=3)

这对我有用:

import pytz
import datetime

timezone = pytz.timezone('Europe/Madrid')
now = datetime.datetime.now(tz = timezone)

安装 pytz: pip install pytz

获取所有时区: print(pytz.all_timezones)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM