天天看點

python比較兩個時間前後_Python:如何比較兩個日期/時間?

python比較兩個時間前後_Python:如何比較兩個日期/時間?

I have the following two date/time which are date_time1 and date_time2 respectively:

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)

and would if I were to receive another date/time called input_date_time (e.g. 2017-04-16 12:11:42+00:00), would like to do the following:

# Would like to check if `input_date_time` is within the range

if parsed1 <= input_date_time <= parsed2:

And got an error: TypeError: can't compare offset-naive and offset-aware datetimes

Thought up of breaking it down to just year, month, day, hour, minute, and second, and compare every single one.

What would be the proper way to do so?

解決方案

here is my edited (again) example

I think we should provide timezone data to every datetime object

assume that date_time1 is a local time.

I think we should add timezone data to date_time1 instead of clear other tzinfo (my first example)

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')

this can check if input is between parsed1 and parsed2