我开始学习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
我希望脚本只继续在特定的一天,当它大约19h00PST/PDT(2h45GMT/UTC)。我写的那个在GMT/UTC下工作得很好,但我确定当夏令时开始或如果我将本地时区更改为不同的时区时,它将失败。
我该怎么做才能让脚本检查PST/PDT中的当前时间,并从那里继续,忽略或转换本地时区?
发布于 2018-02-03 04:14:52
@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
发布于 2018-02-03 03:55:44
发布于 2018-02-03 03:58:44
Pythons Datetime从系统时间中提取。因此,如果系统设置为使用DST,那么您就可以了。
如果你不信任或者不能信任系统时间,那么任何内置函数都不会是准确的。然后,您需要让您的程序从另一台服务器获取时间。
https://stackoverflow.com/questions/48589734
复制相似问题