web-dev-qa-db-fra.com

Convertir unicode au format strptime approprié datetime

J'essaie de convertir un objet unicode en un objet datetime.

J'ai lu la documentation: http://docs.python.org/2/library/time.html#time.strptime

et essayé

datetime.strptime(date_posted, '%Y-%m-%dT%H:%M:%SZ') 

mais je reçois le message d'erreur ValueError: time data '2014-01-15T01:35:30.314Z' does not match format '%Y-%m-%dT%H:%M:%SZ'

Avez-vous des commentaires sur le format approprié?

J'apprécie le temps et l'expertise.

17
bbrooke

Vous pouvez analyser les microsecondes:

from datetime import datetime
date_posted = '2014-01-15T01:35:30.314Z'
datetime.strptime(date_posted, '%Y-%m-%dT%H:%M:%S.%fZ')
31
Velimir Mlaker

Une option consiste à laisser dateutil faire le travail:

>>> from dateutil import parser
>>> parser.parse('2014-01-15T01:35:30.314Z')
datetime.datetime(2014, 1, 15, 1, 35, 30, 314000, tzinfo=tzutc())
12
alecxe