Holen Sie sich das aktuelle Datum und die aktuelle Uhrzeit in Python unter Berücksichtigung des Zeitunterschieds

Über diesen Artikel

In diesem Artikel habe ich darüber geschrieben, wie das aktuelle Datum und die aktuelle Uhrzeit in Python unter Berücksichtigung des Zeitunterschieds abgerufen werden. Ich habe festgestellt, wie es sowohl in Python2 als auch in Python3 funktioniert, wobei nur das Standardmodul (datetime) verwendet wird.

Die detaillierte Beschreibung der verschiedenen Methoden und Objekte des Moduls "datetime" entfällt.

Auslösen

Ich habe eine Web-App in Python implementiert und versucht, sie auf Heroku auszuführen. Ich versuche, eine Funktion zu implementieren und muss das aktuelle Datum und die aktuelle Uhrzeit abrufen.

Wenn Sie einfach versuchen, die aktuelle Uhrzeit abzurufen, erhalten Sie die Systemzeit des Heroku-Servers. Auf dem Heroku-Server läuft die Systemzeit um +00: 00 (UTC).

Was ist, wenn Sie die App nur in Japan ausführen und nur die Systemzeit von Heroku verwenden? Wenn die Funktion von der App bedient wird und die Uhrzeit erfasst wird, ist es 12:00 Uhr japanischer Zeit. Dann ist Herokus Systemzeit 3:00. Die japanische Zeit ist 12:00 Uhr, aber die App verarbeitet sie als 3:00 Uhr.

Hmmm, das ist nicht gut ... (Besonders für Kalender und Erinnerungen.) Wenn Sie nur 9 Stunden hinzufügen, wird dies sofort behoben, aber ich möchte sicherstellen, dass das genaue Datum und die Uhrzeit ohne Abhängigkeit von der Zeitzoneneinstellung des Servers zurückgegeben werden.

Verfahren

Zuerst zeige ich Ihnen den gesamten Code, der jetzt funktioniert.

import datetime

# UTC (Vereinbarung Weltzeit)Holen Sie sich die Zeit von
time_now_utc = datetime.datetime.utcnow()
print(time_now_utc)
# 2020-10-10 14:51:22.910110

#Japan ist 9 Stunden vor UTC
time_dt_ja = datetime.timedelta(hours=9)
print(time_dt_ja)
# 9:00:00

#Wenn Sie UTC um 9 Stunden verlängern, ist es Zeit für Japan.
time_now_ja = time_now_utc + time_dt_ja
print(time_now_ja)
# 2020-10-10 23:51:22.910110

1. Erhalten Sie zuerst UTC (Agreement World Time)

Wenn Sie Datum und Uhrzeit mit "datetime.datetime.utcnow ()" erhalten, erhalten Sie das gleiche Ergebnis (UTC), unabhängig davon, ob die Zeitzone der laufenden Maschine Japan, Großbritannien oder die USA ist. (Wenn es sich um "datetime.datetime.now ()" handelt, ändert sich das Ergebnis abhängig von der Zeitzoneneinstellung des Betriebssystems.) Dadurch werden zunächst die Unterschiede in den Zeitzoneneinstellungen der bedienenden Maschinen ausgeglichen.

time_now_utc = datetime.datetime.utcnow()

print(time_now_utc)
# 2020-10-10 14:51:22.910110

type(time_now_utc)
# <class 'datetime.datetime'>

Hier erhalten Sie das Objekt datetime.

2. Bereiten Sie sich als Nächstes auf die Berechnung vor, um die Zeitdifferenz anzuwenden

timedelta Bereiten Sie das Objekt vor. Das datetime-Objekt ist das ** Zeitinformationsobjekt ** und das timedelta ist das ** Zeitinformationsobjekt **.

time_dt_test = datetime.timedelta(days=1, seconds=1, microseconds=1, milliseconds=1, minutes=1, hours=1, weeks=1)

print(time_dt_test)
# 8 days, 1:01:01.001001

type(time_dt_test)
# <class 'datetime.timedelta'>

Wenn Sie auf diese Weise den Tag (Woche, Tag) oder die Stunde (Stunde, Minute, Sekunde) angeben, werden diese in Tages- und Zeitinformationen umgewandelt.

3. Berechnen Sie abschließend

Die Objekte "datetime" und "timedelta" können mit "+" - "betrieben werden. Durch Hinzufügen von 9 Stunden zu UTC wird es also Japan-Zeit

time_now_ja = time_now_utc + time_dt_ja

print(time_now_ja)
# 2020-10-10 23:51:22.910110

Verwenden Sie danach die entsprechende Methode "datetime".

print(time_now_ja.strftime("%Y Jahr%m Monat%d Tag"))
#10. Oktober 2020

In Bezug auf "strftime ()" scheint es verschiedene Formatcodes sowie "% Y", "% d", "% m" zu geben. Einzelheiten finden Sie in der offiziellen Dokumentation https://docs.python.org/ja/3/library/datetime.html#strftime-strptime-behavior

Beiseite

Laut offizieller Dokumentation ist das Abrufen der UTC besser als "datetime.datetime.utcnow ()" datetime.datetime.now (datetime.timezone.utc) scheint empfohlen zu werden.

https://docs.python.org/ja/3/library/datetime.html

Es scheint jedoch, dass es in Python2 kein Zeitzonenobjekt gibt.

(Aber die Zeitzonenbeziehung ist wahrscheinlich viel intelligenter mit dem Zeitzonenobjekt zu implementieren.)

Recommended Posts

Holen Sie sich das aktuelle Datum und die aktuelle Uhrzeit in Python unter Berücksichtigung des Zeitunterschieds
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
Abrufen und Konvertieren der aktuellen Zeit in der lokalen Systemzeitzone mit Python
Datum und Uhrzeit im angegebenen Format abrufen
Bestimmen Sie das Datums- und Uhrzeitformat mit Python und konvertieren Sie es in Unixtime
Holen Sie sich Datum in Python
Python Aktuelle Zeit abrufen
Holen Sie sich den Titel und das Lieferdatum von Yahoo! News in Python
Über den Unterschied zwischen "==" und "is" in Python
Zur Darstellung von Datum, Uhrzeit, Uhrzeit und Sekunden in Python
Finde Fehler in Python
Konvertieren Sie Datum und Uhrzeit in Zeitzonen in Unixtime in Python2.7
Extrahieren Sie "Nur aktuelles Datum" und "Aktuelles Datum und Uhrzeit" mit Python datetime.
Konvertieren Sie die Datumszeitzone (Zeitdifferenz) mit Python (aus Zeichenfolge).
Rufen Sie die aktuellen Standortinformationen und den Benutzeragenten in Python ab
Unterschied zwischen list () und [] in Python
Unterschied zwischen == und ist in Python
Holen Sie sich den Desktop-Pfad in Python
Holen Sie sich den MIME-Typ in Python und bestimmen Sie das Dateiformat
Holen Sie sich den Skriptpfad in Python
[Python] Zeigt die verstrichene Zeit in Stunden, Minuten und Sekunden an (00:00:00)
Holen Sie sich den Desktop-Pfad in Python
Holen Sie sich den Hostnamen in Python
Python Hinweis: Holen Sie sich den aktuellen Monat
Unterschied zwischen @classmethod und @staticmethod in Python
Unterschied zwischen Anhängen und + = in der Python-Liste
Unterschied zwischen nicht lokal und global in Python
Ruft die aktuelle JST-Zeit in ISO8601-Notation ab
Pytest Aktueller Zeittest (festes Datum und Uhrzeit)
Ruft die EDINET-Codeliste in Python ab
Codebeispiel zum Abrufen von oauth_token und oauth_token_secret der Twitter-API in Python 2.7
Holen Sie sich zu jeder Tageszeit eine Datums- / Uhrzeitinstanz in Python
So stoppen Sie das Programm bis zu einem bestimmten Datum und einer bestimmten Uhrzeit in Python
Holen Sie sich mit Python Zeitreihendaten von k-db.com
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Holen Sie sich das Wetter in Osaka über Web-API (Python)
Holen Sie sich den Aufrufer einer Funktion in Python
Unterschied zwischen Variablen und Selbst. Variablen in der [Python] -Klasse
Ruft den Fenstertitel des X-Fenstersystems in Python ab
[Python] Ruft das Datum der letzten Aktualisierung der Website ab
Rufen Sie das Aktualisierungsdatum der Python-Memorandum-Datei ab.
Abrufen der Unix-Zeit der von JST angegebenen Zeit unabhängig von der Zeitzone des Servers mit Python
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
Holen Sie sich das letzte Element des Arrays, indem Sie Zeichenfolgen in Python und PHP aufteilen
Datumsmanipulation in Python
[Python3] Ermittelt die Datumsdifferenz
Berechnen Sie das Datum mit Python
Holen Sie sich ein Date mit Python
[Python] Teilen Sie das Datum
Berechnen Sie Daten in Python
So erhalten Sie den Variablennamen selbst in Python
Das einfachste Python-Memo in Japan (Klassen und Objekte)
Erhalten Sie das Formular in Python und führen Sie verschiedene Aktionen aus
So ermitteln Sie die Anzahl der Stellen in Python
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen
[Python] Misst und zeigt die für die Verarbeitung erforderliche Zeit an
[Python] Holen Sie sich die Zahlen im Diagramm mit OCR
Geben Sie die Zeit ab dem Start des Programms in Python aus
[Python] Ruft die Liste der im Modul definierten Klassen ab
Unterschied zwischen Ruby und Python in Bezug auf Variablen
Holen Sie sich die Standardausgabe in Echtzeit mit dem Python-Unterprozess