2017-09-27 9 views
0

Newbie question ici et je ne suis pas sûr que ce soit la meilleure pratique, mais:Convertir Horodatage au format ISO après formulaire de soumission

Je cherche à convertir un horodatage tiré depuis une soumission de formulaire et changer ISO . Pour des raisons d'affichage, je voudrais garder l'option de temps affichée à l'utilisateur comme: Sept 30th 2017 11am EST. Je cherche à changer cela en 2017-09-30T11:00:00Z. Je suis aussi essayer d'obtenir cette dynamique si elle est Oct 22nd 2017 10am EST il en résulterait 2017-10-22T10:00:00Z

Répondre

1

Vous pouvez utiliser le (3ème partie) Module dateutil pour aider à l'analyse de la valeur temporelle entrant:

from dateutil import parser 

ts = parser.parse('Sept 30th 2017 11am EST') 
print(ts.isoformat()) 

print(parser.parse('Oct 22nd 2017 10am EST').isoformat()) 

sortie :

 
2017-09-30T11:00:00 
2017-10-22T10:00:00 

Cela ne perd le fuseau horaire, cependant, en supposant eST est UTC-5:

>>> print(parser.parse('Sept 30th 2017 11am EST', tzinfos={'EST': -(5*3600)})) 
2017-09-30 11:00:00-05:00 
>>> print(parser.parse('Oct 22nd 2017 10am EST', tzinfos={'EST': -(5*3600)})) 
2017-10-22 10:00:00-05:00 
+1

@Rem: il y a un argument 'tzinfos' que vous pouvez passer à' parse() ', qui est un dictionnaire associant des noms de fuseaux horaires aux offsets. – mhawke