Czas testowania wszystkich potrzebnych naiwnych (bez strefy czasowej) lub wszystkich świadomy (strefa czasowa). Wyjątek powinien wystąpić, jeśli spróbujesz porównać świadomość i naiwność. Jeśli wszystkie czasy są świadome, strefy czasowe nie muszą w rzeczywistości odpowiadać tym, co wydaje się być brane pod uwagę przy porównywaniu.
np.
class RND(datetime.tzinfo):
""" Random timezone UTC -3 """
def utcoffset(self, dt):
return datetime.timedelta(hours=-3)
def tzname(self, dt):
return "RND"
def dst(self, dt):
return datetime.timedelta(hours=0)
april_fools = datetime.datetime(year=2017, month=4, day=1, hour=12, tzinfo=pytz.UTC)
random_dt = datetime.datetime(year=2017, month=4, day=1, hour=9, tzinfo=RND())
random_dt == april_fools
# True as the same time when converted back to utc.
# Between test of 3 naive datetimes
start_spring = datetime.datetime(year=2018, month=3, day=20)
end_spring = datetime.datetime(year=2018, month=6, day=21)
april_fools = datetime.datetime(year=2018, month=4, day=1)
if start_spring < april_fools < end_spring:
print "April fools is in spring"