Проверьте, прошло ли дата часового пояса текущего времени

0 Sergey Ivanov [2015-09-25 15:40:00]

Я получаю время в формате 12:00 и у меня также есть часовой пояс в формате <DstTzInfo 'Europe/Paris' PMT+0:09:00 STD>. Я хочу видеть, если эта дата уже передана текущее время в этот часовой пояс.

Мой текущий часовой пояс может отличаться от часового пояса, который я получаю, поэтому я использую следующее:

tz = pytz.timezone('Europe/Paris')
d = parse("14:39").replace(tzinfo=tz)
now = datetime.datetime.now(tz)
print (d - now).total_seconds()

Хотя нынешнее время в Париже составляет 14:39, я все равно получаю 6600 секунд. Я также пробовал now = datetime.datetime.replace(tzinfo=tz), но я получаю -3600 секунды.

То, что я хочу, - это время в заданном часовом поясе, проверить, прошло оно или нет.

python date timezone datetime pytz


1 ответ


0 primero [2015-09-25 16:25:00]

Как насчет этого:

from datetime import datetime
from dateutil import tz

tz = tz.gettz('Europe/Paris')
now = datetime.now().replace(tzinfo=tz)
d = datetime.strptime("{0}/{1}/{2} 14:39".format(now.year,now.month,now.day), "%Y/%m/%d %H:%M").replace(tzinfo=tz)

print (d-now).total_seconds()

Сейчас я сохраняю текущее время, в часовой пояс Европа/Париж, а также создаю d в том же часовом поясе. Если их разница отрицательная, дата уже передается текущее время в этот часовой пояс.