Lorsque vous travaillez avec des horodatages qui incluent un décalage temporel, tels que "2012-07-24T23:14:29- 07:00", vous pouvez rencontrer des problèmes lors de leur conversion en objets datetime Python à l'aide de la méthode strptime. Le format par défaut spécifié dans la fonction strptime ne prend pas en charge les décalages horaires.
Cependant, vous pouvez explorer plusieurs stratégies pour résoudre cette conversion :
Si vous le faites Vous n'avez pas besoin de conserver les informations de fuseau horaire, vous pouvez choisir de les ignorer lors de la conversion. Cela peut être fait en découpant la chaîne d'horodatage pour exclure le décalage :
time_str = "2012-07-24T23:14:29-07:00" time_str_no_offset = time_str[:19] # Remove the offset portion time_obj = datetime.datetime.strptime(time_str_no_offset, "%Y-%m-%dT%H:%M:%S") # Convert without offset
Une solution alternative consiste à exploiter le module dateutil. Il fournit une fonction d'analyse qui peut gérer les horodatages avec des décalages :
from dateutil.parser import parse time_obj = parse(time_str)
La fonction d'analyse détectera et inclura automatiquement les informations de fuseau horaire dans l'objet datetime résultant.
Si vous utilisez Python 3.2 ou une version plus récente, la prise en charge des fuseaux horaires a été améliorée. Vous pouvez utiliser le spécificateur de format %z pour inclure le décalage horaire :
time_str = "2012-07-24T23:14:29-07:00" time_obj = datetime.datetime.strptime(time_str, "%Y-%m-%dT%H:%M:%S%z")
Notez que le dernier caractère deux-points du format doit être supprimé et que le trait d'union avant le décalage doit être remplacé par un signe plus ou un signe moins en fonction de la direction du décalage.
En implémentant ces approches, vous pouvez convertir efficacement les horodatages avec décalages en objets datetime en Python, en fonction de vos besoins spécifiques. exigences.
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!