2010-10-08 6 views
4

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

Répondre

6

from datetime import datetime 
datetime.strptime('2010-10-08 14:26:01.220000'[:-7], 
       '%Y-%m-%d %H:%M:%S').strftime('%b %d %Y') 
+0

Merci! fonctionne très bien :) – Joel

2

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' 
0

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.

Questions connexes