2017-10-06 3 views

Répondre

1

Vous ne pouvez pas seulement utiliser le module datetime puisque les ordinaux ne sont pas traitées.

Mais vous pouvez utiliser une expression régulière pour reformater votre entrée, puis strptime pour le convertir en un datetime que vous pouvez convertir en chaînes de caractères en utilisant strftime:

import re 
import datetime 

str_date = "2nd Jan" 
now = datetime.datetime.utcnow() 

PATTERN = re.compile(r"^0*(?P<day>[1-9]\d*)[^ ]* (?P<month>\w+)$") 
reformatted = PATTERN.sub(r"\g<day> \g<month> %s", str_date) % now.strftime("%Y %H:%M:%S") 
date = datetime.datetime.strptime(reformatted, "%d %b %Y %H:%M:%S") 
print date.strftime("%Y-%m-%dT%H:%M:%SZ") 

Affichera: 2017-01-02T09 : 03: 54Z

+0

Excellent, merci. Pouvez-vous supprimer% symbole de Z dans la dernière ligne. –