Django比较时间域

2024-09-26 18:04:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图比较两个日期字段的时间。这就是我要做的。打印时的输出。我看是一样的,但是比较结果是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

False

谢谢


Tags: infalsefortime时间startappointmentslot
2条回答

datetime with time zonedatetime that unaware about time zone进行比较,可以将时区添加到unknowledge datetime中,如下所示:

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 timezone的详细信息。在

因为一个日期时间是时区感知的,而另一个不是,所以它们不相等 要比较或检查等效性,必须将两者转换为标准单位/格式

在这里,我删除了这两个日期时间的时区信息。

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)

相关问题 更多 >

    热门问题