Python | Tijdzone conversie

| | | | | | | |

De datum- en tijdelementen van Python kunnen naïef of attent zijn. In het geval dat het datetime-element tzinfo heeft, weet het dit op dit moment. Iets anders, de datum en tijd zijn naïef. Om de tijdzone van een datetime-object te verduidelijken, definieert u een abstracte basisklasse, tzinfo. In ieder geval karakteriseert de Python datetime-bibliotheek eenvoudig de conceptuele basisklasse voor tzinfo en laat het aan anderen over om de creatie van tzinfo daadwerkelijk te implementeren. Dit is waar de tz dateutil-module in komt — het biedt alles wat nodig is om upstream-tijdzones te wijzigen vanuit de tijdzone-informatie van uw besturingssysteem.

Instelling:

Gebruik pip of easy_install dateutil om te installeren. Zorg ervoor dat het besturingssysteem tijdzonegegevens heeft.

Op Linux is dit meestal te vinden in /usr / share / zoneinfo , en het Ubuntu-pakket heet tzdata. In het geval van het aantal bestanden en mappen in /usr / share / zoneinfo , zoals Amerika / en Europa /, dan is het klaar om verder te gaan.

Get UTC-object tzinfo — door tz.tzutc()

te bellen vanuit dateutil import tz

tz.tzutc ()

tzutc()

De offset is 0 door de utcoffset () methode met een UTC datum/tijd object.


import datetime

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

datetime.timedelta (0) 

Geef het pad naar de file tijdzone in gettz () om tzinfo-objecten voor andere tijdzones op te halen.


tz.gettz ( `VS / Pacific` )

< /table>

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

< / p>

tz.gettz ( `Europa / Parijs` )

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

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

datetime.timedelta (-1, 61200) 

Om te wijzigen een tijd- en datumelement anders dan UTC naar UTC, moet u de tijdzone onthouden. Als u de vertrouwde tijd probeert te wijzigen in UTC, krijgt u een ValueError-uitzondering. Om de naïeve datetime-tijdzone te onthouden, roept u in feite de replace () -strategie aan met de gewenste tzinfo. Zodra het datetime-element tzinfo heeft, kan UTC op dat moment worden gewijzigd door de methode astimezone () aan te roepen met tz.tzutc () .

< / p>

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

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

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

Traceback (meest recente oproep laatst): Bestand "/u sr/lib/python2.6/doctest.py", regel 1228, in __run compileflags, 1) in test.globs File "", regel 1, in dat.astimezone (tz.tzutc ()) ValueError: astimezone () kan niet worden toegepast op een naïeve datetime 

dat.replace (tzinfo = abc)

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

Alles zit achter het werk —

  • De elementen tzutc en tzfile zijn twee subklassen van tzinfo.
  • Al met al kennen ze de juiste UTC-offset om de tijdzone te wijzigen (0 voor tzutc) .
  • Het tzfile-element begrijpt hoe de zoneinfo-documenten van de werkstructuur moeten worden gescand op fundamentele informatie over het tegengewicht.
  • De Replace ()-strategie voor het element nta datetime doet wat de naam — het vervangt kwaliteiten.
  • Als een datetime een tzinfo heeft, zal de astimezone ()-strategie hoogstwaarschijnlijk rekening houden met de tijd met behulp van UTC-tegengewichten en dan de huidige tzinfo vervangen door een nieuwe tzinfo.

Code: Geef het trefwoordargument tzinfos door aan de dateutil-parser om niet-herkende tijdzones te detecteren


parser.parse ( `Woensdag 4 Aug 2010 om 18:30 uur (CDT)` ,

fuzzy = True )

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

tzinfos = { `CDT` : tz.gettz ( ` VS / Centraal` )}

parser.parse ( `Woensdag 4 augustus 2010 om 18:30 uur (CDT)` ,

fuzzy = True , tzinfos = tzinfos)

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

Python | Tijdzone conversie __del__: Questions

Python | Tijdzone conversie _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