Obtenir le système de fuseau horaire local en python
Semble étrange, mais je ne peux pas trouver un moyen facile de trouver le fuseau horaire local à l'aide de Pandas/pytz en Python.
Je peux le faire:
>>> pd.Timestamp('now', tz='utc').isoformat()
Out[47]: '2016-01-28T09:36:35.604000+00:00'
>>> pd.Timestamp('now').isoformat()
Out[48]: '2016-01-28T10:36:41.830000'
>>> pd.Timestamp('now').tz_localize('utc') - pd.Timestamp('now', tz='utc')
Out[49]: Timedelta('0 days 01:00:00')
Qui va me donner le fuseau horaire, mais ce n'est probablement pas la meilleure façon de le faire...
Est-il une commande dans pytz ou pandas pour obtenir le fuseau horaire du système? (de préférence en python 2.7 )
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que c'est possible en utilisant
pytz
oupandas
, mais vous pouvez toujours installer python-dateutil ou tzlocal:ou
datetime.now(tzlocal()).tzname()
. Il va sortir un trois lettre time code de la zone. Par exemple,MST
pour la Montagne.temps.fuseau horaire
devrait fonctionner.Diviser par 3600 vous donnera le décalage en heures:
Cela ne nécessite pas d'autres bibliothèques Python.
time.localtime( ).tm_isdst > 0
Bien qu'il n'utilise pas pytz/Pandas, les autres réponses ne sont pas non plus, alors j'ai pensé que je devrais poster ce que j'utilise sur mac/linux:
Avantages sur les autres réponses: respectueuse de l'heure d'été, ne nécessite pas de bibliothèques supplémentaires à être installé.
date +%Z
sans analyse.timezone = subprocess.check_output(["date", "+%Z"])
; je suppose que par défaut du shell n'est pas utilisé, donc y compris les arguments dans une seule chaîne de caractères est fonction de look pour un même nom de fichier qui échoue.