Gestion des fuseaux horaires Python

Environnement: Python-3.5

L'heure Python est créée avec le fuseau horaire à l'esprit. Une note sur la façon de gérer les fuseaux horaires. Le fuseau horaire naïf est le moment où le fuseau horaire n'est pas conscient, et le fuseau horaire conscient est le moment où le fuseau horaire est conscient.

from datetime import datetime,timezone
import  pytz

naive = datetime.now()
aware = datetime.now(timezone.utc)

Passer timezone comme argument de timezone # now crée une heure actuelle tenant compte du fuseau horaire. Les deux ne peuvent être comparés.

naive > awre 
# TypeError: can't compare offset-naive and offset-aware datetimes

Une exception est levée.

Lors de la création d'une heure arbitraire, passez le fuseau horaire comme argument comme suit.

naive = datetime(2016,6,1,12,0,0,0)
aware = datetime(2016,6,1,12,0,0,0,timezone.utc)

Utilisez datetime # astimezone si vous souhaitez passer à un fuseau horaire local. Bien sûr, l'heure naïve du fuseau horaire ne peut pas être utilisée.

print(naive.astimezone())
# ValueError: astimezone() cannot be applied to a naive datetime
print(aware.astimezone())
# 2016-06-01 21:00:00+09:00

Il est pratique d'utiliser pytz lorsque vous utilisez votre fuseau horaire préféré. timezone-Change une heure naïve au fuseau horaire spécifié.

import  pytz

de = pytz.timezone('Europe/Berlin')
print(de.localize(naive))
# 2016-06-01 12:00:00+02:00

jp = pytz.timezone('Asia/Tokyo')
print(jp.localize(naive))
# 2016-06-01 12:00:00+09:00

timezone-Change le fuseau horaire de l'heure consciente. Cela ne change pas l'heure réelle.

print(aware.astimezone(jp))
# 2016-06-01 21:00:00+09:00
print(aware.astimezone(de))
# 2016-06-01 14:00:00+02:00

Vous pouvez remplacer le fuseau horaire par datetime # replace. Naturellement, le temps d'expression changera.

print(aware.replace(tzinfo=jp).astimezone(timezone.utc))
# 2016-06-01 03:00:00+00:00
print(aware.replace(tzinfo=de).astimezone(timezone.utc))
# 2016-06-01 11:07:00+00:00

Recommended Posts

Gestion des fuseaux horaires Python
Gestion des erreurs Python
Gestion des exceptions Python
Gestion des exceptions Python
Manipulation de json en python
Python, à propos de la gestion des exceptions
Gestion des points décimaux Python
Comment gérer l'hexadécimal en Python3
Gestion des exceptions Python (mémo d'apprentissage Python ⑥)
Python
python> Gestion des tableaux 2D
À propos de la date et du fuseau horaire Python
Traitement des URL relatives en python
Application Python: Traitement des données # 3: Format des données
pip installer les erreurs de gestion de mysql pendant python
Définitions de classe Python et gestion des instances
Gestion des exceptions lors de la communication de l'API Python
Gestion des fichiers JSON en Python
Gestion des expressions régulières par PHP / Python
python kafka
J'ai essayé de résumer la gestion des exceptions Python
Les bases de Python ⑤
Résumé Python
Python intégré
Notation d'inclusion Python
Technique Python
Compte à rebours Python 2.7
Mémorandum Python
Python FlowFishMaster
Service Python
astuces python
fonction python ①
Les bases de Python
Mémo Python
ufo-> python (3)
Notation d'inclusion Python
Installer python
Python Singleton
Les bases de Python ④
Mémorandum Python 2
mémo python
Python Jinja2
Incrément Python
atCoder 173 Python
[Python] fonction
Installation de Python
Installer Python 3.4.3.
Essayez Python
Mémo Python
Itératif Python
Algorithme Python
Python2 + mot2vec
[Python] Variables
Fonctions Python
Python sys.intern ()
Tutoriel Python
Fraction Python
underbar python C'est ce que
Résumé Python
Démarrer python