font - Horario de verano de Python
subplot title python (3)
¿Cómo verifico si el horario de verano está vigente?
Ampliando la respuesta de @Greg Hewgill más arriba, además de lidiar con la zona horaria local (con la ayuda de pip install tzlocal
), obtienes:
import time
from datetime import datetime, timedelta
from tzlocal import get_localzone
def to_local(dt):
"""From any timezone to local datetime - also cope with DST"""
localtime = time.localtime()
if localtime.tm_isdst:
utctime = time.gmtime()
hours_delta = timedelta(hours=(localtime.tm_hour - utctime.tm_hour))
dt = dt - hours_delta
return dt.replace(tzinfo=get_localzone())
Si desea verificar si la luz del día está actualmente vigente con la configuración actual de la computadora, utilice time.daylight.
>>> import time
>>> print time.daylight
time.daylight solo dice si la computadora está o no en horario de verano, no si la computadora ha configurado "Ajustar automáticamente el reloj para los cambios de horario de verano". Para aquellas computadoras que no tienen ajuste de horario de verano, time.daylight siempre será 0 durante todo el año.
Una forma de determinar si la computadora se ajustará para el horario de verano durante el año es obtener la tupla devuelta por time.tzname y si son diferencias (es decir, len (set (time.tzname))! = 1), entonces el la computadora tiene activado el ajuste de ahorro de luz diurna.
Puede usar time.localtime
y mirar el indicador tm_isdst
en el valor de retorno.
>>> import time
>>> time.localtime()
(2010, 5, 21, 21, 48, 51, 4, 141, 0)
>>> _.tm_isdst
0
Usando time.localtime()
, puede hacer la misma pregunta para cualquier hora arbitraria para ver si DST estaría (o estaba) en vigencia para su zona horaria actual.