Python-Zeitzonenbehandlung

Umgebung: Python-3.5

Die Python-Zeit wird unter Berücksichtigung der Zeitzone erstellt. Ein Hinweis zum Umgang mit Zeitzonen. Die Zeitzone-naiv ist die Zeit, in der die Zeitzone nicht bewusst ist, und die Zeitzone-bewusst ist die Zeit, in der die Zeitzone bewusst ist.

from datetime import datetime,timezone
import  pytz

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

Wenn Sie "Zeitzone" als Argument für "Zeitzone # jetzt" übergeben, wird eine zeitzonenbezogene aktuelle Zeit erstellt. Die beiden können nicht verglichen werden.

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

Eine Ausnahme wird ausgelöst.

Übergeben Sie beim Erstellen einer beliebigen Zeit die Zeitzone als Argument wie folgt.

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

Verwenden Sie "datetime # astimezone", wenn Sie zu einer lokalen Zeitzone wechseln möchten. Natürlich kann keine zeitzonennaive Zeit verwendet werden.

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

Es ist praktisch, "pytz" zu verwenden, wenn Sie Ihre bevorzugte Zeitzone verwenden. Zeitzone - Ändert eine naive Zeit in die angegebene Zeitzone.

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

Zeitzone - Ändert die Zeitzone der bewussten Zeit. Dies ändert nichts an der tatsächlichen Zeit.

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

Sie können die Zeitzone mit "datetime # replace" überschreiben. Natürlich wird sich die Zeit zum Ausdrücken ändern.

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

Python-Zeitzonenbehandlung
Python-Fehlerbehandlung
Behandlung von Python-Ausnahmen
Behandlung von Python-Ausnahmen
Umgang mit Json in Python
Python, über die Ausnahmebehandlung
Pythons Umgang mit Dezimalstellen
Umgang mit Hexadezimal in Python3
Behandlung von Python-Ausnahmen (Python-Lernnotiz ⑥)
Python
Python> Umgang mit 2D-Arrays
Informationen zu Python-Datums- und Zeitzone
Relative URL-Verarbeitung in Python
Python-Anwendung: Datenverarbeitung # 3: Datenformat
pip install mysql-Handling Fehler während Python
Python-Klassendefinitionen und Instanzbehandlung
Ausnahmebehandlung während der Python-API-Kommunikation
Umgang mit JSON-Dateien in Python
Umgang mit regulären Ausdrücken durch PHP / Python
Kafka Python
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Python-Grundlagen ⑤
Python-Zusammenfassung
Eingebaute Python
Python-Einschlussnotation
Python-Technik
Python 2.7 Countdown
Python-Memorandum
Python FlowFishMaster
Python-Dienst
Python-Tipps
Python-Funktion ①
Python-Grundlagen
Python-Memo
Ufo-> Python (3)
Python-Einschlussnotation
Installieren Sie Python
Python Singleton
Python-Grundlagen ④
Python-Memorandum 2
Python-Memo
Python Jinja2
Python-Inkrement
atCoder 173 Python
[Python] -Funktion
Python-Installation
Python installieren 3.4.3.
Versuchen Sie Python
Python-Memo
Python iterativ
Python-Algorithmus
Python2 + word2vec
[Python] -Variablen
Python-Funktionen
Python sys.intern ()
Python-Tutorial
Python-Fraktion
Python Underbar Das ist was
Python-Zusammenfassung
Starten Sie Python