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')
Cependant, l'utilisation du décalage temporel fourni entraîne une ValueError car la directive 'z' n'est pas prise en charge.
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')
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)
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 :
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S%z')
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!