Проблемы со смещением и наивным временем смещения

#python #datetime #time #timezone

#python #дата и время #время #Часовой пояс

Вопрос:

Я использую следующий фрагмент кода, чтобы определить, попадает ли определенное время в 2 раза (все установлено для часового пояса UTC). Однако этот код выдает исключение, в котором жалуется, что я сравниваю время, зависящее от смещения, с временем ожидания смещения. Я надеялся получить некоторое представление об этом.

 currentTime = datetime.datetime.now(pytz.utc).time()
t1 = datetime.time(9, 0, 0, tzinfo=pytz.utc)
t2 = datetime.time(11, 0, 0, tzinfo=pytz.utc)
if t1 < currentTime and t2 > currentTime:
    return True
return False
  

Комментарии:

1. Поскольку смещение от UTC зависит от часового пояса, и они меняются с годами, нет особого смысла иметь время без даты, имеющей смещение UTC. Здесь вы могли бы, например, сравнить время и смещение UTC отдельно.

Ответ №1:

Похоже, что здесь происходило то, что я терял часовой пояс при преобразовании во время.

Чтобы исправить это. Я должен был сделать следующее.

 currentTime =  currentTime.replace(tzinfo=pytz.UTC)