Python | Konwersja strefy czasowej

| | | | | | | |

Elementy daty i godziny w Pythonie mogą być naiwne lub uważne. W przypadku, gdy element datetime ma tzinfo, w tym momencie wie. Coś innego, data i godzina są naiwne. Aby wyjaśnić strefę czasową obiektu datetime, zdefiniuj abstrakcyjną klasę bazową tzinfo. W każdym razie, biblioteka datetime Pythona po prostu charakteryzuje koncepcyjną klasę bazową dla tzinfo i pozostawia ją innym, aby faktycznie zaimplementowali tworzenie tzinfo. Tutaj pojawia się moduł tz dateutil — daje wszystko, czego potrzeba, aby przełączyć strefy czasowe nadrzędne z informacji o strefie czasowej systemu operacyjnego.

Ustawienie:

Użyj do instalacji pip lub easy_install dateutil. Upewnij się, że system operacyjny ma dane strefy czasowej.

W systemie Linux jest to zwykle dostępne w /usr/share/zoneinfo , a pakiet Ubuntu nazywa się tzdata. W przypadku liczby plików i katalogów w /usr/share/zoneinfo , takich jak Ameryka / i Europa /, można kontynuować.

Pobierz tzinfo obiektu UTC — wywołując tz.tzutc()

z dateutil import tz

tz.tzutc ()

tzutc()

Przesunięcie wynosi 0, wywołując utcoffset() z obiektem daty/czasu UTC.


importuj datetime

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

datetime.timedelta (0) 

Przekaż ścieżkę do strefa czasowa pliku w gettz () , aby uzyskać obiekty tzinfo dla innych stref czasowych.


tz.gettz ( `US / Pacific` )

< /table>

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

< / p>

tz.gettz ( `Europa / Paryż` )

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

tz.gettz ( `USA / Pacyfik ` ). utcoffset (datetime.datetime.utcnow ())

datetime.timedelta (-1, 61200) 

Aby zmienić element czasu i daty inny niż UTC do UTC, musisz Zapamiętać strefę czasową. Jeśli spróbujesz zmienić zaufany czas na UTC, otrzymasz wyjątek ValueError. Aby zapamiętać naiwną strefę czasową typu datetime, po prostu wywołujesz strategię replace() z żądanym tzinfo. Gdy element datetime ma tzinfo, czas UTC można zmienić w tym momencie, wywołując metodę astimezone () za pomocą tz.tzutc () .

< / p>

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

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

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

Traceback (ostatnie ostatnie połączenie): Plik "/u sr/lib/python2.6/doctest.py", wiersz 1228, w __run compileflags, 1) w pliku test.globs "", wiersz 1, w dat.astimezone (tz.tzutc ()) ValueError: astimezone () nie może być stosowane do naiwnej daty i godziny 

dat.replace (tzinfo = abc)

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

Wszystko stoi za pracą —

  • Elementy tzutc i tzfile to dwie podklasy tzinfo.
  • Wszystko brane pod uwagę, znają prawidłowe przesunięcie UTC, aby zmienić strefę czasową (0 dla tzutc) .
  • Element tzfile rozumie, jak skanować dokumenty zoneinfo struktury pracy w poszukiwaniu podstawowych informacji o przeciwwagach.
  • Strategia replace() dla elementu nta datetime robi to, co nazwa — zastępuje cechy.
  • Gdy datetime ma tzinfo, strategia astimezone () najprawdopodobniej weźmie pod uwagę czas przy użyciu przeciwwag UTC, a następnie zastąpi bieżący tzinfo nowym tzinfo.

Kod: Przekaż argument słowa kluczowego tzinfos do parsera dateutil w celu wykrycia nierozpoznanych stref czasowych


parser.parse ( `Środa, 4 sierpnia 2010 o 18:30 (CDT)` ,

rozmyty = Prawda )

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

tzinfos = { `CDT` : tz.gettz ( ` Stany Zjednoczone / Centralne` )}

parser.parse ( `Środa, 4 sierpnia 2010 o 18:30 (CDT)` ,

fuzzy = True , tzinfos = tzinfos)

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

Python | Konwersja strefy czasowej __del__: Questions

Python | Konwersja strefy czasowej _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