Python:如何比较两个日期/时间?

Jo *_* Ko 2 python datetime python-dateutil

我有以下两个日期/时间,分别是date_time1date_time2

2017-04-15 00:00:00
2017-04-17 15:35:19+00:00

parsed1 = dateutil.parser.parse(date_time1)
parsed2 = dateutil.parser.parse(date_time2)
Run Code Online (Sandbox Code Playgroud)

如果我收到另一个日期/时间input_date_time(例如 2017-04-16 12:11:42+00:00),我想做以下事情:

#    Would like to check if `input_date_time` is within the range 
if parsed1 <= input_date_time <= parsed2:
… 
Run Code Online (Sandbox Code Playgroud)

并得到一个错误: TypeError: can't compare offset-naive and offset-aware datetimes

想把它分解成年、月、日、小时、分钟和秒,然后比较每一个。

这样做的正确方法是什么?

Pet*_*ter 6

这是我编辑的(再次)示例,我认为我们应该为每个日期时间对象提供时区数据,假设 date_time1 是本地时间。我认为我们应该将时区数据添加到 date_time1 而不是清除其他 tzinfo(我的第一个示例)

import dateutil.parser
import datetime
from pytz import utc

date_time1 ='2017-04-15 00:00:00'
date_time2 ='2017-04-17 15:35:19+00:00'
input_date_time = '2017-04-16 12:11:42+00:00'

parsed1 = dateutil.parser.parse(date_time1).astimezone(utc)
parsed2 = dateutil.parser.parse(date_time2)
input_parsed = dateutil.parser.parse(input_date_time)

if parsed1 <= input_parsed  <= parsed2: 
    print('input is between')
Run Code Online (Sandbox Code Playgroud)

这可以检查输入是否介于parsed1parsed2