2013-08-04 14 views
25

Mam pole daty rozpoczęcia w bazie danych jako datę (nie datetime). W mojej metodzie zapisywania w forms.py używam datetime.strptime(date_string, '%Y-%m-%d') do konwersji ciągu na datę. Metoda zwraca mi sformatowaną datę wraz z czasem, tj. "2006-08-03 00:00:00".Django - Pobierz tylko datę z datetime.strptime

Chcę tylko datę i brak czasu. Ponieważ pojawia się "nieprawidłowy format daty", który brzmi "musi być w formacie RRRR-MM-DD", utknąłem na tym i jestem sfrustrowany. Czy ktoś może mi przy tym pomóc?

+0

Jeśli używasz formularza django, a następnie użyć django DateField obsługiwać walidacji niego. O wiele wygodniejsze. –

+0

Pomógł zmienić pole na DateField. Dzięki stary. – Nikhilesh

Odpowiedz

67

Myślę, że potrzebujesz obiektu daty, a nie datetime. Spróbuj przekonwertować datetime do tej pory przy użyciu metody Date() na obiekcie datetime

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

Działa również, jeśli chcesz tylko czas.() – JoeRod

+5

Byłoby miło po prostu mieć strpdate() – user1700890

+0

Jest to zdecydowanie lepsze niż konieczności zawijania datetime.date (wynik) – brunch875

Powiązane problemy