Джанго сравнить поля времени - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь сравнить два поля даты для времени.Вот что я делаю.Мой вывод при печати.Я вижу, что это то же самое, но результат сравнения False!Любые указатели на то, что я делаю неправильно?

for appt in appointment_detail:
    print(appt['start_time'])
    print(slot_time)
    print(slot_time == appt['start_time'])

Результат:

2018-09-22 11: 00: 00 + 00: 00

2018-09-22 11: 00: 00

Неверно

Спасибо

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Вы сравниваете datetime with time zone с datetime that unaware about time zone, вы можете добавить часовой пояс к незнакомой дате и времени, как показано ниже:

import pytz
from datetime import datetime

time_zone_str = '2018-09-22 11:00:00+00:00'
date_time_str = '2018-09-22 11:00:00'

time_zone = datetime.strptime(''.join(time_zone_str.rsplit(':', 1)), '%Y-%m-%d %H:%M:%S%z')
date_time = datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S')

date_time_with_time_zone = pytz.utc.localize(date_time)
print(date_time_with_time_zone == time_zone)

подробнее о часовой пояс Python .

0 голосов
/ 30 сентября 2018

Поскольку один DateTime равен с учетом часового пояса , а другой - нет, они не равны

Для сравнения или проверки эквивалентности необходимо преобразовать оба значения в стандартныйединица измерения / формат

Здесь я удаляю информацию о часовом поясе обеих дат и времени.

<code>wo_tz_slot_time = slot_time.replace(tzinfo=None)
wo_tz_appt_start_time = appt['start_time'].replace(tzinfo=None)
print(wo_tz_slot_time == wo_tz_appt_start_time)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...