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

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

DDD
DDDoriginal
2024-11-27 05:48:09442parcourir

How to Convert Timestamps with Timezone Offsets to Python datetime Objects?

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

Conversion d'horodatages du format "AAAA-MM-JJTHH:MM:SS-hh:mm" en objets datetime en Python, l'utilisation de la méthode strptime peut être difficile en raison des informations de décalage temporel.

Dans l'exemple fourni, strptime ne parvient pas à analyser l'horodatage avec le décalage "-07:00" en utilisant le format "%Y-%m-%dT%H:%M:%S-%z". En effet, strptime ne prend pas en charge nativement la directive '%z' pour les fuseaux horaires dans Python 2.

Options de solution de contournement :

1. Ignorer le fuseau horaire :

Si les informations de fuseau horaire ne sont pas cruciales, vous pouvez l'ignorer en analysant la chaîne jusqu'au décalage :

time_str = "2012-07-24T23:14:29-07:00"
time_obj = datetime.datetime.strptime(time_str[:19], '%Y-%m-%dT%H:%M:%S')

2. Utilisez le module dateutil :

Alternativement, le module dateutil fournit une fonction d'analyse plus robuste qui prend en charge les fuseaux horaires :

from dateutil.parser import parse
time_obj = parse(time_str)

Prise en charge de Python 3 :

Dans Python 3.2 et versions ultérieures, la prise en charge de la gestion des fuseaux horaires a été améliorée. Supprimer le dernier ":" du décalage et remplacer "-" par " :

time_str = "2012-07-24T23:14:29-07:00"
time_obj = datetime.datetime.strptime(''.join(time_str.rsplit(':', 1)), '%Y-%m-%dT%H:%M:%S%z')

Cela analysera correctement l'horodatage et créera un objet datetime avec le décalage de fuseau horaire spécifié.

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!

Déclaration:
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