2013-08-04 12 views
25

Ho il campo data di inizio nel database come data (non datetime). Nel mio metodo di salvataggio in forms.py sto usando datetime.strptime(date_string, '%Y-%m-%d') per convertire la stringa in data. Il metodo restituisce la data formattata insieme al tempo, ad esempio "2006-08-03 00:00:00".Django - Ottieni solo data da datetime.strptime

Voglio solo la data e nessuna ora. Poiché ricevo un "errore di formato della data non valido" che dice "Deve essere nel formato AAAA-MM-GG", sono bloccato su questo e frustrato. Qualcuno può aiutarmi con questo?

+0

Se si utilizza un modulo di Django, quindi utilizzare un Django DateField per gestire la convalida di esso. Molto più conveniente. –

+0

Modifica del campo in DateField aiutato. Grazie compagno. – Nikhilesh

risposta

67

Penso che sia necessario un oggetto data non datetime. Prova a convertire datetime ad oggi utilizzando il metodo date() su un oggetto datetime

from datetime import datetime 
datetime.strptime('2014-12-04', '%Y-%m-%d').date() 
+1

Funziona anche se vuoi solo il tempo .time() – JoeRod

+5

Sarebbe bello avere semplicemente strpdate() – user1700890

+0

Questo è decisamente meglio che dover avvolgere datetime.date (risultato) – brunch875