如何查看第二天​​何时开始使用Python?

时间:2017-08-13 01:23:59

标签: python datetime pytz

我正试图在第二天开始时(00:00:00)触发事件。我也使用本地时区,而不是UTC,因为触发UTC时间将导致第二天提前开始。以下是我如何获得当地时间:

import pytz
import datetime

tz = pytz.timezone('America/Chicago') # Set the timezone

utc_time = datetime.datetime.utcnow()
local_time = (pytz.utc.localize(utc_time, is_dst=None).astimezone(tz))

if (local_time == datetime.timedelta(days=1)):
    *** My action starts here ***

但这似乎不会在当地时间00:00:00触发。我做错了什么?

2 个答案:

答案 0 :(得分:0)

您正在检查时间增量1天,因此如果它从15:43开始,delta +1天将是次日15:43。另一件事是如果你错过那个时间它永远不会触发。 在你的地方我会用这个:

import datetetime
from time import sleep
# get current day in month (we don't need anything else)
currentDay = datetime.datetime.now().day # datetime's now is localized
# watch for it to change
while (datetime.datetime.now().day == currentDay):
    sleep(1) # increase time if you don't need exactly at the midnight
print("Good midnight, today is...")

答案 1 :(得分:0)

如何在没有日期时间库的情况下执行此操作:

cur = time.localtime()
# ...(time passes)
if cur[:3] != time.localtime()[:3]:
    print("It's a new day!")

它是如何工作的? time.localtime()[:3] 给出 time.struct_time 的前 3 个值,比较年、月和日。