Abrufen und Konvertieren der aktuellen Zeit in der lokalen Systemzeitzone mit Python

Umgebung

$ python --version
Python 2.7.12

Wenn Sie sich nicht für die Zeitzone interessieren, tritt ein Fehler auf

Als ich versuchte, die Zeit der von Trellos API erhaltenen Karte mit der aktuellen Zeit zu vergleichen, bekam ich eine Fehlermeldung, als ich den folgenden Code schrieb und süchtig danach war.

def show_cards_(cards):
    for c in cards:
        print("---------------")
        print("card id   : {id}".format(id=c.id))
        print("card name : {name}".format(name=c.name))
        
        if c.due is not None:
            due = c.due_date
            now = dt.now()
            print("Es ist vorbei" if now > due else "Immer noch okay")

Als ich diesen Code ausführte, wurde folgende Fehlermeldung angezeigt:

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

Es scheint, dass fällig und jetzt nicht verglichen werden können, da sie für Offset-native bzw. Offset-fähig unterschiedlich sind.

Bei genauerer Betrachtung des Inhalts sah es so aus.

2017-01-03 10:00:00+00:00    #fällig: offset-aware
2017-01-03 22:40:14.709333   #jetzt: offset-native

Es war die Offset-bewusste UTC-Zeit, zu der Trello zurückkehrte.

In Python scheint es, dass es nach beiden verglichen wird.

Lösung

Punkt

Mischen Sie nicht "Offset-native" und "Offset-bewusst".

Bis jetzt war mir das überhaupt egal, aber es scheint, dass pytz und python-dateutil sich in solchen Zeiten um mich kümmern werden.

So erhalten Sie die aktuelle Uhrzeit mit Offset-Native

>>> from datetime import datetime as dt
>>> print(dt.now())
2017-01-03 22:45:07.334307+09:00

In den meisten Fällen ist dies in Ordnung

So erhalten Sie die aktuelle Uhrzeit mit Offset-Erkennung

>>> from datetime import datetime as dt
>>> import dateutil.tz
>>> print(dt.now(dateutil.tz.tzlocal()))
2017-01-03 22:47:27.712684+09:00

Sie können die Zeitzone auf "Asien / Tokio" festlegen, aber Die lokale Zeitzone des Systems sah cool aus, also habe ich es versucht.

Zeitzonenumwandlung (das Folgende ist eine versatzbewusste Geschichte)

Holen Sie sich Zeit in UTC

>>> from datetime import datetime as dt
>>> import pytz
>>> now_utc = dt.now(pytz.utc)
>>> print(now_utc)
2017-01-03 14:07:54.861061+00:00

Wenn Sie die Zeitzone als Variable an das übliche dt.now () übergeben, sieht es nach ok aus.

↓ Und

UTC → JST

>>> print(dt.now(pytz.utc).astimezone(pytz.timezone("Asia/Tokyo")))
2017-01-03 23:05:53.765549+09:00

das ist alles.

Zuhause! Zuhause! Polkadot Stingray und DAOKO sind die besten!

Recommended Posts

Abrufen und Konvertieren der aktuellen Zeit in der lokalen Systemzeitzone mit Python
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
Bestimmen Sie das Datums- und Uhrzeitformat mit Python und konvertieren Sie es in Unixtime
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Ruft den Fenstertitel des X-Fenstersystems in Python ab
Python Aktuelle Zeit abrufen
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).
[Python] Holen Sie sich die Zahlen im Diagramm mit OCR
Konvertieren Sie das Bild in .zip mit Python in PDF
Mit Python psycopg2 erhalten Sie Ergebnisse im Diktatformat
Rufen Sie die aktuellen Standortinformationen und den Benutzeragenten in Python ab
Holen Sie sich den MIME-Typ in Python und bestimmen Sie das Dateiformat
[Python] Zeigt die verstrichene Zeit in Stunden, Minuten und Sekunden an (00:00:00)
Systemhandel ab Python3: Holen Sie sich den neuesten Programmcode
Holen Sie sich den Desktop-Pfad in Python
Holen Sie sich das Wetter mit Python-Anfragen
Holen Sie sich das Wetter mit Python-Anfragen 2
Holen Sie sich den Skriptpfad in Python
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
Holen Sie sich den Desktop-Pfad in Python
Holen Sie sich den Hostnamen in Python
Python Hinweis: Holen Sie sich den aktuellen Monat
Beginnen Sie mit Python mit Blender
Wie ist der Fortschritt? Lassen Sie uns mit dem Boom in Python weitermachen
[Python3] Speichern Sie die Mittelwert- und Kovarianzmatrix in json mit Pandas
Holen Sie sich den Titel und das Lieferdatum von Yahoo! News in Python
Holen Sie sich mit Python zusätzliche Daten zu LDAP
[Python] Ruft den Variablennamen mit str ab
Zeigen Sie Python 3 im Browser mit MAMP an
Ruft die aktuelle JST-Zeit in ISO8601-Notation ab
Umgang mit "Jahren und Monaten" in Python
MongoDB mit Python zum ersten Mal
Beginnen wir mit TopCoder in Python (Version 2020)
Ruft die EDINET-Codeliste in Python ab
Füllen Sie die Zeichenfolge mit Nullen in Python und zählen Sie bestimmte Zeichen aus der Zeichenfolge
Rufen Sie mit Python eine Liste der in der aktuellen Umgebung installierten Pakete ab
Ich habe Umgebungsvariablen in Docker festgelegt und in Python angezeigt.
Codebeispiel zum Abrufen von oauth_token und oauth_token_secret der Twitter-API in Python 2.7
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
Erhalten und schätzen Sie die Form des Kopfes mit Dlib und OpenCV mit Python
Holen Sie sich zu jeder Tageszeit eine Datums- / Uhrzeitinstanz in Python
Holen Sie sich mit Python Zeitreihendaten von k-db.com
Konvertieren Sie PDFs mit Python in Massenbilder
Visualisieren Sie Informationen zum Beschleunigungssensor von der Mikrocomputerplatine in Echtzeit mit mbed + Python
Holen Sie sich den Aufrufer einer Funktion in Python
[Automatisierung] Extrahieren Sie die Tabelle als PDF mit Python
Verwenden Sie vorerst Logger mit Python
Erstellen wir ein einfaches Empfangssystem mit dem serverlosen Python-Framework Chalice und Twilio
Abrufen der Unix-Zeit der von JST angegebenen Zeit unabhängig von der Zeitzone des Servers mit Python
Über den Unterschied zwischen "==" und "is" in Python
Was ich getan habe, als ich mit Lambda Python im Zeitlimit steckte
Holen Sie sich alle Standardeingaben, die in der Paiza- und Wettbewerbsprogrammierung verwendet werden, mit int (Python)
So erhalten Sie die Dateien im Ordner [Python]
Lösen des Lorenz 96-Modells mit Julia und Python
Archivieren und komprimieren Sie das gesamte Verzeichnis mit Python