J'ai enregistré un datetime.datetime.now() sous la forme d'une chaîne. Maintenant, j'ai une valeur de chaîne, à savoirChaîne à datetime
2010-10-08 14:26:01.220000
Comment puis-je convertir cette chaîne à
Oct 8th 2010
?
Merci
J'ai enregistré un datetime.datetime.now() sous la forme d'une chaîne. Maintenant, j'ai une valeur de chaîne, à savoirChaîne à datetime
2010-10-08 14:26:01.220000
Comment puis-je convertir cette chaîne à
Oct 8th 2010
?
Merci
from datetime import datetime
datetime.strptime('2010-10-08 14:26:01.220000'[:-7],
'%Y-%m-%d %H:%M:%S').strftime('%b %d %Y')
Vous n'avez pas besoin de créer une chaîne intermédiaire.
Vous pouvez aller directement à partir d'un datetime
à une chaîne avec strftime()
:
>>> datetime.now().strftime('%b %d %Y')
'Oct 08 2010'
Il n'y a aucun moyen d'une doublure, en raison de votre exigence apparente de la ordinale grammaticale.
Il semble que vous utilisiez une version 2.6 de Python, ou peut-être plus tard. Dans un tel cas,
datetime.datetime.strptime("2010-10-08 14:26:01.220000", "%Y-%m-%d %H:%M:%S.%f").strftime("%b %d %Y")
se rapproche, ce qui donne
Oct 08 2010
Pour insister sur '8' plutôt que '08' consiste à calculer la % b et % Y parties comme ci-dessus, et écrire une fonction décimale à ordinal pour intercaler entre eux.
Merci! fonctionne très bien :) – Joel