Пользователь указал дату и время - PullRequest
1 голос
/ 12 сентября 2010

Мне нужно проанализировать строку даты / времени из пользовательского ввода и преобразовать в UTC на основе информации тимзеона, недоступной в строке для datetime.strptime() (есть предложения?) Есть ли простой способ сделать это?

В идеале, на движке приложений Google я хотел бы также получить местное время с tzinfo из браузера, если это возможно.

timezone_string = "GMT-0800"
fields = ("eventstartmonth","eventstartday", "eventstartyear", "eventstarttimehour", "eventstarttimeampm") 
date_string = '_'.join(map(lambda x: self.request.get(x), fields))
# date_string = "01_11_2000_1:35_PM"

dt = datetime.datetime.strptime(date_string, "%m_%d_%Y_%I:%M_%p")
# how to convert dt into a tz-aware datetime, and then to UTC 

1 Ответ

0 голосов
/ 02 ноября 2010

При поиске похожей информации я наткнулся на приложение для движка демо-приложений (с указанием источника), которое демонстрирует, как преобразовывать временные зоны способом, аналогичным тому, который вы запрашивали. К сожалению, однако, вам нужно будет создать пользовательские классы tzinfo (объяснение / код в демонстрационном приложении, ссылка на которые приведена выше) для каждого часового пояса, который вы будете конвертировать.

Если вам нужно справиться с любым часовым поясом и / или хотите выбрать легкий маршрут, я бы порекомендовал использовать модуль pytz . Однако имейте в виду, что pytz - довольно громоздкий модуль, который вам нужно загрузить в свой экземпляр GAE.

...