Python DST и GMT управления в планировщик - PullRequest
1 голос
/ 01 сентября 2009

Я планирую написать приложение на языке pyduler, и я бы не стал быть в беде с обработкой DST и GMT.

В качестве примера см. Также PHP-связанный вопрос 563053 .

Кто-нибудь уже работал над чем-то похожим?

Кто-нибудь уже сталкивался с PyTZ - Библиотека часовых поясов Python?

Ответы [ 2 ]

3 голосов
/ 02 сентября 2009

pytz прекрасно работает. Обязательно конвертируйте и сохраняйте свое время как UTC и используйте процедуры преобразования pytz / datetime для преобразования в местное время Вот пример использования и преобразования часового пояса здесь , в основном:

import datetime
import pytz
datetime.datetime(2008, 1, 31, 22, 56, 13, tzinfo=<UTC>)
utcdate.astimezone(pytz.timezone('US/Pacific'))
# result:    
# datetime.datetime(2008, 1, 31, 14, 56, 13, tzinfo=<DstTzInfo 'US/Pacific' PST-1 day, 16:00:00 STD>)
3 голосов
/ 01 сентября 2009

Конечно, многие из нас работали над календарями / планировщиками и знакомы с pytz. Каков ваш конкретный вопрос, который еще не получил хорошего ответа на вопрос SO, на который вы указываете, и ЕГО ответы / комментарии ...?

Редактировать : поэтому нет особых, особых ловушек, если вы делаете вещи, как рекомендуется в лучших ответах на другой вопрос. В частности, выполните внутреннюю стандартизацию по UTC («GMT» является допотопным термином и понятием) и конвертируйте в / из тимзонов (w / DST & c) при вводе / выводе (так же, как вы должны стандартизировать по Юникоду внутренне и кодировать / декодировать в байты , если нужно, только на I / O! -).

В стандартной библиотеке Python есть простой и гибкий модуль под названием sched , который предоставляет настраиваемый «планировщик событий» и может быть в основе вашего приложения с помощью calendar, datetime и т. Д. Некоторые из рецептов в главе «Время и деньги» Поваренной книги Python, 2-е издание, могут помочь (она широко доступна в виде пиратских онлайн-копий, хотя я не соавтор t обязательно понравится этот факт; -).

Трудно сказать гораздо больше, не имея представления о том, что вы пишете - веб-сервис, веб-приложение, настольное приложение или что-то еще. Хотите ли вы поддерживать vCal , iCalendar , vCalendar , другие формы взаимодействия / синхронизации / mashup и, если да, с какими другими приложениями, службами и / или де Стандарты факто? И т. Д. И т. Д. - как и все приложения, он может расти и расти, если, конечно, окажется успешным; -).

...