/ / python django zapisz ciąg z datetime.strptime i wyświetl? - python, django

python django zapisać ciąg z datetime.strptime i wyświetlacz? - python, django

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 № 1

Tak, 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.