¿Es posible obtener los límites DST de una zona horaria determinada con pytz?
No parece ser oficialmente apoyado. Sin embargo, puede pinchar en la parte interna de un objeto DstTzInfo
y obtenerlo desde allí:
>>> from pytz import timezone >>> tz = timezone('Europe/London') >>> tz._utc_transition_times [datetime.datetime(1, 1, 1, 0, 0), datetime.datetime(1916, 5, 21, 2, 0), ... datetime.datetime(2036, 3, 30, 1, 0), datetime.datetime(2036, 10, 26, 1, 0), datetime.datetime(2037, 3, 29, 1, 0), datetime.datetime(2037, 10, 25, 1, 0)]
Cada entrada corresponde a una entrada en _transition_info
:
>>> tz._transition_info [(datetime.timedelta(0), datetime.timedelta(0), 'GMT'), (datetime.timedelta(0, 3600), datetime.timedelta(0, 3600), 'BST'), ... (datetime.timedelta(0, 3600), datetime.timedelta(0, 3600), 'BST'), (datetime.timedelta(0), datetime.timedelta(0), 'GMT'), (datetime.timedelta(0, 3600), datetime.timedelta(0, 3600), 'BST'), (datetime.timedelta(0), datetime.timedelta(0), 'GMT')]
Y la fuente nos dice lo que estos significan:
_utc_transition_times = None # Sorted list of DST transition times in UTC _transition_info = None # [(utcoffset, dstoffset, tzname)] corresponding # to _utc_transition_times entries
Por supuesto, esto depende de la implementación y probablemente querrá depender de versiones particulares de pytz que se sabe que funcionan.