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

时间:2018-02-02 19:35:46

标签: python python-3.x timezone

我开始学习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分/ UTC)附近继续运行。我写的那个可以和GMT / UTC一起使用,但是我确定它会在夏令时开始时失败,或者我将当地时区改为另一个时区。

如何让脚本检查PST / PDT中的当前时间并从那里继续,忽略或转换本地时区?

3 个答案:

答案 0 :(得分:0)

您应该查看pytz

Python: display the time in a different time zone也会有所帮助

答案 1 :(得分:0)

@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

答案 2 :(得分:-1)

Pythons Datetime从系统时间开始。因此,如果系统设置为使用夏令时,那么你会没事的。

如果您不信任或无法信任系统时间,那么功能构建将不准确。然后,您需要让程序运行并从另一台服务器中抽出时间。