Maison >développement back-end >Tutoriel Python >Comment convertir des horodatages avec des décalages de fuseau horaire en objets datetime Python ?
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!