datetime.min
не имеет прикрепленной к нему информации о часовом поясе, следовательно, "смещение-наивное".
now
имеет прикрепленную к нему информацию о часовом поясе («Дублин»), следовательно, «смещенную».
Для выполнения временных манипуляций с datetime
объектами необходимо, чтобы они были согласованными. Подумайте, как бы вы вычли «13:22:45» без ТЗ из «22:00:00 SAST»? «13:22:45» также GMT + 2? Вы не знаете.
Так что конвертируйте один из них в нужный вам часовой пояс. Преобразование datetime.min
в ваш часовой пояс будет иметь ошибку OverflowError, поэтому идите другим путем.
tz = timezone('Europe/Dublin')
now_utc = pytz.UTC.normalize(now)
now_naive = now_utc.replace(tzinfo=None)
result_timedelta = now_naive - datetime.min