Указанная пользователем дата и время

Мне нужно проанализировать строку даты/времени из пользовательского ввода и преобразовать в UTC на основе информации timzeone, недоступной в строке для 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 

person Kyle    schedule 11.09.2010    source источник
comment
близко, здесь есть некоторая важная информация (спасибо), но не совсем. Мне не помешало бы немного больше «держаться за руки» со стратегиями tzinfo.   -  person Kyle    schedule 12.09.2010
comment
меня сбивает с толку, что у python нет надежной реализации для обработки часовых поясов   -  person Kyle    schedule 12.09.2010
comment
Мне кажется, что вы немного преувеличиваете проблему. Вам не нужно беспокоиться о часовых поясах, если вы можете просто получить правильное смещение по Гринвичу. timezone_string, который вы указали в примере, содержит это смещение в виде числа, все, что вам нужно сделать, это создать из него timedelta: stackoverflow.com/questions/4044863/   -  person Mark Ransom    schedule 02.11.2010


Ответы (1)


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

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

person Josh    schedule 02.11.2010