Maison > développement back-end > Tutoriel Python > Comment convertir des horodatages avec des décalages de fuseau horaire en objets DateTime en Python ?

Comment convertir des horodatages avec des décalages de fuseau horaire en objets DateTime en Python ?

Barbara Streisand
Libérer: 2024-11-29 19:37:11
original
979 Les gens l'ont consulté

How to Convert Timestamps with Timezone Offsets to DateTime Objects in Python?

Convertir les horodatages avec décalage en objets Datetime à l'aide de strptime

Problème

Conversion des horodatages du format "2012-07-24T23:14:29- 07:00" vers les objets datetime utilisant strptime() peut être problématique en raison de l'heure décalage à la fin (-07:00). Sans le décalage, il est possible d'utiliser strptime() comme suit :

time_str = "2012-07-24T23:14:29"
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S')
Copier après la connexion

Cependant, l'utilisation du décalage temporel fourni entraîne une ValueError car la directive 'z' n'est pas prise en charge.

Solutions de contournement

Il existe deux solutions de contournement principales :

1. Ignorer le fuseau horaire à l'aide de strptime() :

Supprimez la partie du fuseau horaire de l'horodatage avant l'analyse :

time_obj = datetime.datetime.strptime(time_str[:19], '%Y-%m-%dT%H:%M:%S')
Copier après la connexion

2. Utilisez dateutil.parser :

Le module dateutil propose une fonction d'analyse qui prend en charge les fuseaux horaires :

from dateutil.parser import parse
time_obj = parse(time_str)
Copier après la connexion

Python 3.2 et versions ultérieures

Pour les versions Python 3.2 et supérieures , la prise en charge des fuseaux horaires a été améliorée. %z fonctionnera après avoir ajusté la chaîne de format comme suit :

  • Supprimez les derniers deux-points de la chaîne de format.
  • Supprimez le '-' avant le spécificateur %z.
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S%z')
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal