Perdez les espaces à l'avant et à l'arrière de votre format. Je pensais que strptime a été documenté pour varier en fonction des caprices de celui qui a écrit le runtime C pour votre boîte. Cependant, il semble que je me trompe. Ce qui voudrait dire qu'il y a un bug dans Python.
Python 2.6.4 sous Windows n'aime pas les espaces de fin de premier plan; voir ci-dessous.
* x utilisateurs, qu'est-ce que vous trouvez?
En attendant, utilisez le plus petit dénominateur commun - perdez les espaces. Vous pouvez également avoir un problème de locale, comme Adam l'a mentionné.
avec des espaces:
>>> datetime.datetime.strptime('16-MAR-2010 03:37:04'," %d-%b-%Y %H:%M:%S ")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\python26\lib\_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data '16-MAR-2010 03:37:04' does not match format ' %d-%b-%Y %H
:%M:%S '
Sans espaces:
>>> datetime.datetime.strptime('16-MAR-2010 03:37:04',"%d-%b-%Y %H:%M:%S")
datetime.datetime(2010, 3, 16, 3, 37, 4)
>>>
Les docs pour le module locale mentionne "" "ABMON_1 ... ABMON_12 renvoie le nom abrégé du n-ième mois "" "mais ceux-ci (et d'autres choses utiles) ne semblent pas exister. Des indices? –
@John: travaillé avec les espaces de début et de fin sur WinXP Python version 2.5. Juste essayé sur Ubuntu (Python 2.6.4) et a obtenu l'erreur ValueError. – bernie
Juste essayé sur quelle version de Python sur quelle manifestation de * nix? –