2011-12-03 7 views
5

ho questo codice:come stampare solo la data e non comprende il tempo in datetime.datetime.strptime()

>>> import datetime 
>>> l = '2011-12-02' 
>>> t = datetime.datetime.strptime(l, '%Y-%m-%d') 
>>> print t 
2011-12-02 00:00:00 

la mia domanda è, è possibile che solo il 2011-12-02 verrà stampata?

+0

btw, stai davvero cercando come ottenere una stringa formattata da un'istanza di 'datetime'. La funzione 'strptime' prende semplicemente una stringa e ti dà una nuova istanza di' datetime'. Comprendere questa differenza ti aiuterà a lavorare su cose come questa in futuro. –

risposta

11
>>> t.strftime('%Y-%m-%d') 
'2011-12-02' 
+0

esiste un modo per non diventare una stringa? – gadss

+0

@gadss: * huh!? * Non puoi averlo in alcun modo * ma * una stringa quando la stai formattando. Cosa intendi? –

2

Con strftime():

print t.strftime('%Y-%m-%d') 
+0

'time.strftime' è in realtà formato prima, ora secondo, e il tempo non è in realtà un' datetime' (che il nostro OP ha), ma un 'struct_time'. Dovrebbe usare 'strftime' nel modulo' datetime'. –

+0

Ho modificato la mia risposta a * loong * tempo fa. Il codice funziona, come ho provato prima di rispondere. Se sei confuso sul link, mi dispiace. L'ho usato come un esempio della sintassi, non la funzione effettiva ... – Blender

+0

Il codice che hai inizialmente scritto non funzionava e puoi incolpare l'apparente modello di consistenza finale di SO per il motivo per cui la mia visualizzazione della tua risposta non è mai stata aggiornata mentre io potrei vedere i tuoi nuovi commenti –

0

Credo che si dovrebbe usare come questo

d = datetime.datetime(2011,7,4) 
print '{:%Y-%m-%d}'.format(d) 

o il tuo codice:

import datetime 
l = '2011-12-02' 
t = datetime.datetime.strptime(l, '%Y-%m-%d') 
print '{:%Y-%m-%d}'.format(t) 
0

è necessario specificare il formato di output per la data, ad es utilizzando

print t.strftime("%Y-%m-%d") 

Tutta la lettera dopo un "%" rappresenta un formato:% d è il numero del giorno,% m è il numero del mese,% y è l'anno ultime due cifre,% Y è l'tutto l'anno

Problemi correlati