关于python:python-如何在特定的pst/pdt时间运行函数?

Python - how to run function at a certain PST/PDT time?

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

1
2
3
4
5
6
7
8
9
10
11
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 pst/pdt(2h45 gmt/utc)时继续。我写的那个在格林尼治标准时间/协调世界时工作得很好,但我确信当夏令时开始或如果我将本地时区更改为其他时区,它将失败。

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


@鲁本,请尝试下面的代码。它总是关注美国/太平洋时区的时间。希望它有帮助。谢谢。

1
2
3
4
5
6
7
8
import datetime
import pytz

pst_timezone = pytz.timezone("US/Pacific")
time=datetime.datetime.now(pst_timezone).time()
print(time)

Result: 12:13:10.136603


你应该调查一下派兹

python:在不同的时区显示时间也很有用


pythons datetime从系统时间中提取。因此,如果系统设置为使用DST,那么您就可以了。

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