Je veux obtenir le fuseau horaire par défaut (PST) de mon système à partir de Python. Quelle est la meilleure façon de faire ça ? J'aimerais éviter de forger un autre processus.
Réponses
Trop de publicités?J'ai trouvé que cela fonctionnait bien :
import datetime
tz_string = datetime.datetime.now(datetime.timezone.utc).astimezone().tzname()
Pour moi, cela a été en mesure de faire la différence entre les économies de lumière du jour et non.
Référence avec plus de détails : https://stackoverflow.com/a/39079819/4549682
Les extraits de code pour calculer le décalage sont incorrects, voir http://bugs.python.org/issue7229.
La bonne façon de gérer cela est :
def local_time_offset(t=None):
"""Return offset of local zone from GMT, either at present or at time t."""
# python2.3 localtime() can't take None
if t is None:
t = time.time()
if time.localtime(t).tm_isdst and time.daylight:
return -time.altzone
else:
return -time.timezone
Ce n'est probablement pas la question exacte que le PO a posée, mais il y a deux extraits incorrects sur la page et les bogues temporels sucent pour traquer et corriger.