【发布时间】:2021-09-12 12:10:16
【问题描述】:
我在 Heroku 上有一个脚本,因此我不知道每次重启时它驻留在哪里(-> 我无法手动设置 datetime.timedelta),我需要在罗马时间下午 5 点运行一个例程。这个脚本一直有效,至少在今年冬天是这样,但现在它开始晚一小时,所以是下午 6 点。
import datetime
import pytz
tz = pytz.timezone("Europe/Rome")
now = datetime.datetime.now(tz=tz)
start = datetime.datetime(now.year, now.month, now.day, hour=17, tzinfo=tz)
This answer 表明
使用标准日期时间构造函数的 tzinfo 参数对许多时区的 pytz “不起作用”
所以我尝试使用 tz.localize(start) 进行重构,但在第一次重新启动时,系统将例程安排在下午 3 点,两小时前 。我很困惑:如何在特定时区设置特定时间?
【问题讨论】:
-
我们有 2021 年 6 月 - 如果可以,请避免使用
pytz。使用zoneinfo(Python 3.9 的标准库)- 没有这样的问题。 -
@MrFuppes 升级到 python 3.9 是可能的,但恐怕需要注意其他依赖项。目前,我正在考虑任何其他可能性