¿Admite dateutil soporte DST y TZ? Necesita algo similar a iCalendar RRULE.¿Cómo manejar DST y TZ en eventos recurrentes?
Si no - cómo hacer frente a este problema (la programación de los eventos periódicos & DST cambio offset)
importaciones
>>> from django.utils import timezone
>>> import pytz
>>> from datetime import timedelta
>>> from dateutil import rrule
>>> now = timezone.now()
>>> pl = pytz.timezone("Europe/Warsaw")
Problema con timedelta (necesitan tener las mismas horas locales, pero distintos desplazamientos DST) :
>>> pl.normalize(now)
datetime.datetime(2012, 9, 20, 1, 16, 58, 226000, tzinfo=<DstTzInfo 'Europe/Warsaw' CEST+2:00:00 DST>)
>>> pl.normalize(now+timedelta(days=180))
datetime.datetime(2013, 3, 19, 0, 16, 58, 226000, tzinfo=<DstTzInfo 'Europe/Warsaw' CET+1:00:00 STD>)
Problema con RRULE (necesita tener el mismo cada hora local de cada ocurrencia):
>>> r = rrule.rrule(3,dtstart=now,interval=180,count=2)
>>> pl.normalize(r[0])
datetime.datetime(2012, 9, 20, 1, 16, 58, tzinfo=<DstTzInfo 'Europe/Warsaw' CEST+2:00:00 DST>)
>>> pl.normalize(r[1])
datetime.datetime(2013, 3, 19, 0, 16, 58, tzinfo=<DstTzInfo 'Europe/Warsaw' CET+1:00:00 STD>)
para conocer las mejores prácticas sobre el horario de verano y las zonas horarias, este http://stackoverflow.com/q/2532729/1167333 ofrece un buen resumen de las mejores prácticas – oberron