All*_*ynH 2 python timezone datetime python-2.7
我有一个事件,我想在 Python 中触发,在周五早上和周日早上之间的每个周末。
我已经编写了一些适用于我的本地环境的代码,但我担心在部署到生产时,日期时间将被本地化并且触发器将不正确。理想情况下,我希望所有内容都同步到 UTC,这是我的尝试 - 我想看看它是否正确,以及是否有人对如何使其更清洁有反馈。
(代码对我有用,但无论如何我都在正确的时区:))
from datetime import datetime
def eventTrigger():
if((datetime.weekday(datetime.today()) == 4) and (datetime.now().utcnow.hour) > 9):
return True
elif ((datetime.weekday(datetime.today()) == 6) and (datetime.now().utcnow.hour) < 10):
return True
elif (datetime.weekday(datetime.today()) == 5):
return True
else:
return False
Run Code Online (Sandbox Code Playgroud)
我尝试阅读日期时间文档,但它非常令人困惑。
ros*_*ori 10
如果您想使用 Python 3 标准库来执行此操作并且不依赖于外部pytz:
from datetime import datetime, timezone
now_utc = datetime.utcnow().replace(tzinfo=timezone.utc)
today_utc = now_utc.date()
Run Code Online (Sandbox Code Playgroud)
日期时间和时区令人困惑,您在这里确保深思熟虑是很好的。
首先,图书馆pytz可以提供帮助
from datetime import datetime
import pytz
Run Code Online (Sandbox Code Playgroud)
然后,您可以在顶部定义today和now变量,以可靠地使用 UTC eventTrigger():
now_utc = datetime.now(pytz.utc)
today_utc = now_utc.date()
Run Code Online (Sandbox Code Playgroud)