Python | Conversion de fuseau horaire

| | | | | | | |

Les éléments de date et d`heure Python peuvent être naïfs ou attentifs. Dans le cas où l`élément datetime a tzinfo, à ce stade, il le sait. Autre chose, la date et l`heure sont naïves. Pour clarifier le fuseau horaire d`un objet datetime, définissez une classe de base abstraite, tzinfo. Dans tous les cas, la bibliothèque Python datetime caractérise simplement la classe de base conceptuelle pour tzinfo et laisse à d`autres le soin d`implémenter réellement la création de tzinfo. C`est là qu`intervient le module tz dateutil — il donne tout ce qu`il faut pour changer les fuseaux horaires en amont à partir des informations de fuseau horaire de votre système d`exploitation.

Paramètre :

Utilisez pip ou easy_install dateutil pour l`installation. Assurez-vous que le système d`exploitation dispose de données de fuseau horaire.

Sous Linux, cela se trouve généralement dans / usr / share / zoneinfo , et le package Ubuntu s`appelle tzdata. En cas de nombre de fichiers et de répertoires dans / usr / share / zoneinfo , comme Amérique / et Europe /, alors il est prêt à continuer.

Obtenir l`objet UTC tzinfo — en appelant tz.tzutc()

depuis dateutil import tz

tz.tzutc ()

tzutc()

Le décalage est de 0 en appelant le < méthode code>utcoffset() avec un objet date/heure UTC.


importer datetime

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

datetime.timedelta (0) 

Passez le chemin vers le fichier fuseau horaire dans gettz () pour obtenir des objets tzinfo pour d`autres fuseaux horaires.


tz.gettz ( `États-Unis / Pacifique` )

< /table>

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

< / p>

tz.gettz ( `Europe / Paris` )

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

tz.gettz ( `États-Unis/Pacifique ` ). utcoffset (datetime.datetime.utcnow ())

datetime.timedelta (-1, 61200) 

Pour changer un élément d`heure et de date autre que UTC à UTC, vous devez vous souvenir du fuseau horaire. Si vous essayez de changer l`heure de confiance en UTC, vous obtiendrez une exception ValueError. Pour vous souvenir du fuseau horaire naïf datetime, vous appelez essentiellement la stratégie replace () avec le tzinfo que vous voulez. Une fois que l`élément datetime a tzinfo, UTC peut être modifié à ce stade en appelant la méthode astimezone () avec tz.tzutc () .

< / p>

abc = tz.gettz ( `États-Unis / Pacifique` )

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

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

Traceback (dernier appel le plus récent) : Fichier "/u sr/lib/python2.6/doctest.py", ligne 1228, dans __run compileflags, 1) dans test.globs File "", ligne 1, dans dat.astimezone (tz.tzutc ()) ValueError : astimezone () ne peut pas être appliqué à un datetime naïf 

dat.replace (tzinfo = abc)

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

Tout est derrière le travail —

  • Les éléments tzutc et tzfile sont deux sous-classes de tzinfo.
  • Tout bien considéré, ils connaissent le bon décalage UTC pour changer le fuseau horaire (0 pour tzutc).
  • L`élément tzfile comprend comment scanner les documents zoneinfo de la structure de travail pour les informations de contrepoids fondamentales.
  • La stratégie replace () pour l`élément nta datetime fait ce que le nom — il remplace les qualités.
  • Lorsqu`une date/heure a un tzinfo, la stratégie astimezone () prendra très probablement en compte le temps en utilisant des contrepoids UTC, puis déplacera le tzinfo actuel avec un nouveau tzinfo.

Code : Transmettez l`argument du mot-clé tzinfos à l`analyseur dateutil pour détecter les fuseaux horaires non reconnus


parser.parse ( `Mercredi 4 août 2010 à 18h30 (CDT)` ,

flou = Vrai )

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

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

parser.parse ( `Mercredi 4 août 2010 à 18h30 (CDT)` ,

flou = Vrai , tzinfos = tzinfos)

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

Shop

Learn programming in R: courses

$

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

$

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