Разница в Django между известными датами и временем по летнему времениPython

Программы на Python
Ответить
Anonymous
 Разница в Django между известными датами и временем по летнему времени

Сообщение Anonymous »

Я работаю над приложением Django, в котором мне нужно вычислить разницу между метками времени, хранящимися в БД. На этой неделе я столкнулся с некоторыми проблемами, связанными с летним временем.
В частности, в следующем фрагменте кода:

Код: Выделить всё

tEndUtc = tEnd.astimezone(timezone.utc)
tStartUtc =  tStart.astimezone(timezone.utc)
total_timeUTC = tEndUtc- tStartUtc
total_time = tEnd - tStart
total_time (которое использует временную метку с учетом часового пояса, хранящуюся в базе данных) короче на 1 час, чем значение с total_timeUTC.
Я использую USE_TZ = true в файле настроек.
Вот что я получаю:

Код: Выделить всё

tStart = datetime.datetime(2025, 10, 24, 0, 0, tzinfo=zoneinfo.ZoneInfo(key='Europe/Rome'))
tEnd = datetime.datetime(2025, 10, 31, 23, 59, 59, 999999, tzinfo=zoneinfo.ZoneInfo(key='Europe/Rome'))
tStartUtc  = datetime.datetime(2025, 10, 23, 22, 0, tzinfo=datetime.timezone.utc)
tEndUtc = datetime.datetime(2025, 10, 31, 22, 59, 59, 999999, tzinfo=datetime.timezone.utc)
total_timeUTC = datetime.timedelta(days=8, seconds=3599, microseconds=999999)
total_time = datetime.timedelta(days=7, seconds=86399, microseconds=999999)
Как правильно обрабатывать летнее время? И, в частности, как кто-то правильно вычисляет разницу во времени между летним временем?
Правильная разница во времени — это та, которую я получаю при использовании UTC. Поскольку все приложения созданы с использованием дат и времени с учетом часового пояса, я бы не хотел все менять и конвертировать в метки времени UTC.
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/798 ... across-dst
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»