Python 将日期时间设置为 UTC 时区



我想在 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

我尝试阅读日期时间文档,但这很令人困惑。

如果你想

使用 Python 3 标准库来做到这一点,并且没有外部依赖pytz

from datetime import datetime, timezone
now_utc = datetime.utcnow().replace(tzinfo=timezone.utc)
today_utc = now_utc.date()

日期时间和时区令人困惑,最好您确保在这里深思熟虑。

首先,图书馆pytz可以提供帮助

from datetime import datetime
import pytz

然后,您可以使用以下命令在eventTrigger()顶部定义todaynow变量,以可靠地采用 UTC:

now_utc   = datetime.now(pytz.utc) 
today_utc = now_utc.date()

相关内容

  • 没有找到相关文章

最新更新