Mam ciąg time= "10:00AM"
używam strptime
przekonwertować go na format datetime
time = datetime.strptime(time, "%I:%M%p")
oto mój models.py
time = models.DateTimeField(null=True,blank=True)
Pokazuje to w bazie danych:
1900-01-01 11:00:00+00:00
Jest to normalne??
Jak mogę pokazać 11:00, jeśli chcę wyświetlić na stronie internetowej? Proszę, naucz mnie, dzięki
Próbuję, to nie działa
import time
test = "1900-01-01 11:00:00+00:00"
print (time.strftime(test,"%H:%M:%S"))
Odpowiedzi:
0 dla odpowiedzi № 1Tak, to normalne, DataTimeField przechowuje datę i godzinę. W Twoim przypadku 1900-01-01
jest domyślną datą używaną, gdy jej nie dostarczasz. Wystarczy użyć a TimeField jeśli wszystko, czego potrzebujesz do przechowywania, to pora dnia (bez określonej daty).
Jeśli chodzi o wyświetlanie: Oba będą odtwarzane 11:00 AM
: w twoim szablonie
{{ time_value:time "h:i A" }}
: drukowanie w Pythonie
print my_model.time.strftime("%I:%M %p")
0 dla odpowiedzi nr 2
możesz użyć datetime.combine(date,time)
:
>>> from datetime import datetime
>>> time = "10:00AM"
>>> time = datetime.strptime(time, "%I:%M%p")
>>> datetime.combine(datetime.today(), time.time())
datetime.datetime(2014, 11, 13, 10, 0)
- może jeśli spojrzysz na stronę dzisiaj, nie ma co do tego wątpliwości
11am
znaczy. - może jutro lub w innym czasie, możesz się tym przejmować
11am
odnosi się do innego dnia.