En Python, comment puis-je convertir une chaîne comme celle-ci:
Jeu.16 déc.2010 12:14:05 +0000
au format ISO 8601, tout en conservant le fuseau horaire?
Veuillez noter que la date d'origine est une chaîne et que la sortie doit également être une chaîne, pas datetime
ou quelque chose du genre.
Cependant, je n'ai aucun problème à utiliser des bibliothèques tierces.
En utilisant dateutil :
import dateutil.parser as parser
text = 'Thu, 16 Dec 2010 12:14:05 +0000'
date = parser.parse(text)
print(date.isoformat())
# 2010-12-16T12:14:05+00:00
Python intégré datetime le package a une méthode intégrée pour convertir un objet datetime en isoformat. Voici un exemple:
>>>from datetime import datetime
>>>date = datetime.strptime('Thu, 16 Dec 2010 12:14:05', '%a, %d %b %Y %H:%M:%S')
>>>date.isoformat()
la sortie est
'2010-12-16T12:14:05'
J'ai écrit cette réponse principalement pour les personnes qui travaillent à l'UTC et n'ont pas à se soucier des fuseaux horaires. Vous pouvez supprimer les 6 derniers caractères pour obtenir cette chaîne.
Python 2 n'a pas un très bon support de bibliothèque interne pour les fuseaux horaires, pour plus de détails et de solution, vous pouvez vous référer à cette réponse sur stackoverflow, qui mentionne l'utilisation de bibliothèques tierces similaires à la réponse acceptée.