UTCNow offsetting in Python
问题出现的原因是因为在Python中使用UTCNow进行偏移时,会根据系统的时区产生不同的值。解决方法是使用datetime.datetime.now(tz=timezone.utc)代替utcnow()。
代码如下:
from datetime import datetime, timedelta from datetime import timezone now = (datetime.now(tz=timezone.utc) + timedelta(days=3)).isoformat() + 'Z' print(now)
输出结果:
2018-11-06T16:55:06.535804Z
更多关于Python中使用时区的信息可以在Python UTC datetime object's ISO format doesn't include Z (Zulu or Zero offset)找到。
在Python 3.7中,datetime.strptime和datetime.strftime甚至可以识别01:30作为%z,而在3.6版本中,冒号会导致程序崩溃。
感谢提供帮助,我原本无法弄清楚如何配对这两个函数。这个方法完美解决了我的问题。
不要使用utcnow(),因为它会根据系统的时区产生不同的值。请改用datetime.datetime.now(tz=timezone.utc)。