(Я новичок в Python и Google App Engine, пожалуйста, прости меня, если мои вопросы кажутся простыми).
Я чертовски стараюсь управлять несколькими часовыми поясами в моем приложении Google App Engine.
Вот мои ограничения:
- Если пользователь вводит время на входе, это будет местное время (включая летнее время, когда это необходимо).
- Если пользователь не вводит время, система должна ввести его для него по местному времени (включая DST, когда это необходимо).
- Когда дата и время отображаются для пользователя, они должны быть по местному времени (включая летнее время, если необходимо)
Я понимаю, что время будет внутренне сохранено как UTC с объектом tzinfo, и что App Engine будет хранить модели с временем UTC.
Ранее я думал, что у меня все получилось, попросив пользователя указать свой часовой пояс в своих предпочтениях. Затем я просто загрузил бы их настройки и добавил бы эту tzinfo к любым объектам datetime в отношении этого пользователя.
Однако наше недавнее летнее время сломало его. Оказывается, я не правильно реализовал dst () в своих объектах tzinfo. Насколько я понимаю, я должен определить, включен ли DST в настоящее время, и если да, вернуть правильное смещение для tzinfo.
Проблема в том, что я понятия не имею, как определить, является ли летнее время часового пояса текущим или нет. Я что-то упускаю из виду?