Python | Zeitzonenkonvertierung

| | | | | | | |

Python-Datums- und Zeitelemente können entweder naiv oder aufmerksam sein. Falls das datetime-Element tzinfo hat, weiß es es an dieser Stelle. Etwas anderes, das Datum und die Uhrzeit sind naiv. Um die Zeitzone eines datetime-Objekts zu verdeutlichen, definieren Sie eine abstrakte Basisklasse, tzinfo. In jedem Fall charakterisiert die Python-Datetime-Bibliothek einfach die konzeptionelle Basisklasse für tzinfo und überlässt es anderen, die Erstellung von tzinfo tatsächlich zu implementieren. Hier kommt das tz dateutil-Modul ins Spiel — Es bietet alles, was nötig ist, um Upstream-Zeitzonen von den Zeitzoneninformationen Ihres Betriebssystems zu wechseln.

Einstellung:

Verwenden Sie pip oder easy_install dateutil zur Installation. Stellen Sie sicher, dass das Betriebssystem über Zeitzonendaten verfügt.

Unter Linux finden Sie diese normalerweise in /usr/share/zoneinfo, und das Ubuntu-Paket heißt tzdata. Bei der Anzahl der Dateien und Verzeichnisse in /usr/share/zoneinfo, wie z. B. Amerika / und Europa /, kann es losgehen.

UTC-Objekt tzinfo holen — durch Aufrufen von tz.tzutc()

aus dateutil import tz

tz.tzutc ()

tzutc()

Der Offset ist 0 durch den Aufruf von utcoffset () Methode mit einem UTC-Datums-/Zeitobjekt.


import datetime

tz.tzutc (). utcoffset (datetime.datetime.utcnow ())

datetime.timedelta (0) 

Übergeben Sie den Pfad an die Dateizeitzone in gettz () , um tzinfo-Objekte für andere Zeitzonen abzurufen.


tz.gettz ( `US / Pacific` )

< /table>

tzfile (`/ usr / share / zoneinfo / US / Pacific`) 

< / p>

tz.gettz ( `Europe / Paris` )

tzfile(`/usr/share/zoneinfo/Europe/Paris` )

tz.gettz ( `US / Pacific ` ). utcoffset (datetime.datetime.utcnow ())

datetime.timedelta (-1, 61200) 

Zum Ändern ein anderes Zeit- und Datumselement als UTC zu UTC, müssen Sie sich die Zeitzone merken. Wenn Sie versuchen, die vertrauenswürdige Zeit in UTC zu ändern, erhalten Sie eine ValueError-Ausnahme. Um sich an die naive datetime-Zeitzone zu erinnern, rufen Sie im Grunde die Strategie replace () mit der gewünschten tzinfo auf. Sobald das datetime-Element über tzinfo verfügt, kann UTC an diesem Punkt geändert werden, indem die Methode astimezone () mit tz.tzutc () aufgerufen wird.

< / p>

abc = tz.gettz ( `US / Pacific` )

dat = datetime.datetime ( 2010 , 9 , 25 , 10 , 36 )

dat.tzinfo
dat.astimezone (tz. tzutc ())

Traceback (neuester Aufruf zuletzt): Datei "/u sr/lib/python2.6/doctest.py", Zeile 1228, in __run compileflags, 1) in test.globs File "", Zeile 1, in dat.astimezone (tz.tzutc ()) ValueError: astimezone () kann nicht auf eine naive Datumszeit angewendet werden 

dat.replace (tzinfo = abc)

datetime.datetime (2010, 9, 25, 10, 36, tzinfo = tzfile (`/ usr / share / zoneinfo / US / Pacific`)) 

Alles steht hinter der Arbeit —

  • Die Elemente tzutc und tzfile sind zwei Unterklassen von tzinfo.
  • Alles in allem kennen sie den korrekten UTC-Offset, um die Zeitzone zu ändern (0 für tzutc) .
  • Das tzfile-Element versteht es, die zoneinfo-Dokumente der Arbeitsstruktur nach grundlegenden Gegengewichtsinformationen zu scannen.
  • Die replace()-Strategie für das Element nta datetime bewirkt, was der Name — es ersetzt Qualitäten.
  • Wenn eine Datumszeit eine tzinfo hat, wird die Strategie astimezone () höchstwahrscheinlich die Zeit mit UTC-Gegengewichten berücksichtigen und dann die aktuelle tzinfo durch eine neue tzinfo ersetzen.

Code: Übergeben Sie das Schlüsselwortargument tzinfos an den dateutil-Parser, um nicht erkannte Zeitzonen zu erkennen


parser.parse ( `Mittwoch, 4. August 2010 um 18:30 Uhr (CDT)` ,

unscharf = True )

datetime. datetime (2010, 8, 4, 18, 30) 

tzinfos = { `CDT` : tz.gettz ( ` US / Central` )}

parser.parse ( `Mittwoch, 4. August 2010 um 18:30 Uhr (CDT)` ,

unscharf = True , tzinfos = tzinfos)

datetime.datetime (2010, 8, 4, 18, 30, tzinfo = tzfile (`/ usr / share / zoneinfo / US / Central`)) 

Python | Zeitzonenkonvertierung __del__: Questions

Python | Zeitzonenkonvertierung _files: Questions

Shop

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method