Puede echar un vistazo al miembro _utc_transition_times
de la zona horaria que está utilizando.
>>> from pytz import timezone
>>> tz = timezone("Europe/Paris")
>>> print tz._utc_transition_times
[datetime.datetime(1, 1, 1, 0, 0), datetime.datetime(1911, 3, 10, 23, 51, 39), datetime.datetime(1916, 6, 14, 23, 0), datetime.datetime(1916, 10, 1, 23, 0), date
....
datetime.datetime(2037, 3, 29, 1, 0), datetime.datetime(2037, 10, 25, 1, 0)]
Le dará la lista de las fechas de cambio del horario de verano (inicio y fin del horario de verano).
De acuerdo con el código de tzinfo.py
class DstTzInfo(BaseTzInfo):
'''A timezone that has a variable offset from UTC
The offset might change if daylight savings time comes into effect,
or at a point in history when the region decides to change their
timezone definition.
'''
# Overridden in subclass
_utc_transition_times = None # Sorted list of DST transition times in UTC
_transition_info = None # [(utcoffset, dstoffset, tzname)] corresponding
# to _utc_transition_times entries
Así que si se mezcla el _utc_transition_times
con _transition_info
va a agarrar todas sus informaciones necesarias, fecha, hora y el desplazamiento de aplicar;)
A qué año ? Los puntos de cambio de DST han cambiado en la historia en algunas zonas horarias. – eumiro
Bueno, idealmente me gustaría poder hacerlo por un año arbitrario. Sé que este tipo de información está disponible en la base de datos de Olsen, pero acceder a ella es otro asunto. – Smingos