Python - 如何在某个PST/PDT时间运行函数



我开始学习python,我尝试创建一个脚本在特定时间运行某个命令。这是我到目前为止所拥有的:

import datetime
day_of_week = datetime.date.today().weekday() # 0 is Monday, 6 is Sunday
time = datetime.datetime.now().time()
if day_of_week == 4 and (time >= datetime.time(2,45) and time < datetime.time(9)):
    #do something
elif (day_of_week == 3 and time > datetime.time(22)) or (day_of_week == 4 and time < datetime.time(2,45)):
    #wait until 2h45
else:
    #do nothing

我希望脚本仅在某一天和太平洋标准时间 19:00(格林威治标准时间/世界标准时间 2:45(左右继续。我写的那个在 GMT/UTC 上工作正常,但我确信当夏令时开始时或如果我将本地时区更改为不同的时区时它会失败。

我该怎么做才能使脚本检查 PST/PDT 中的当前时间并从那里继续,忽略或转换本地时区?

@Ruben,请尝试下面的代码。它始终查看美国/太平洋时区的时间。希望对您有所帮助。谢谢。

import datetime
import pytz
pst_timezone = pytz.timezone("US/Pacific")
time=datetime.datetime.now(pst_timezone).time()
print(time)
Result: 12:13:10.136603

你应该看看 pytz

Python:显示不同时区的时间也会有所帮助

Pythons Datetime从系统时间中提取。因此,如果系统设置为使用DST,那么您会没事的。

如果您不信任或不能信任系统时间,则没有内置函数是准确的。然后,您需要让您的程序出去并从另一台服务器中提取时间。

相关内容

  • 没有找到相关文章

最新更新