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,那么您就可以了。
如果您不信任或不能信任系统时间,则没有内置函数是准确的。然后,您将需要让您的程序退出并从另一台服务器抽出时间。