Как получить текущую дату и текущее время только соответственно в Джанго?
Я столкнулся с интересной ситуацией при использовании этого класса:
class Company(models.Model):
date = models.DateField()
time = models.TimeField()
c = Company(date=datetime.datetime.now(), time=datetime.datetime.now())
Django решает использовать DATETIME_INPUT_FORMATS
, определенный в файле format.py.
Это имеет смысл, потому что я передаю datetime.now()
в оба поля.
Я думаю, что мог бы заставить Django использовать DATE_INPUT_FORMATS
и TIME_INPUT_FORMATS
соответственно, если бы я указывал только текущую дату и текущее время в.
Примерно так:
c = Company(date=datetime.date.now(), time=datetime.time.now())
Но это, очевидно, создает исключение, так как теперь не существует таким образом. Есть ли другой способ добиться этого?
Ответы
Ответ 1
В качестве даты вы можете использовать datetime.date.today()
или datetime.datetime.now().date()
.
В течение времени вы можете использовать datetime.datetime.now().time()
.
Однако почему у них есть отдельные поля для них? Почему бы не использовать один DateTimeField
?
Вы всегда можете определить вспомогательные функции для модели, которые возвращают .date()
или .time()
позже, если вы хотите только один или другой.
Ответ 2
import datetime
datetime.datetime.now().strftime ("%Y%m%d")
20151015
За время
from time import gmtime, strftime
showtime = strftime("%Y-%m-%d %H:%M:%S", gmtime())
print showtime
2015-10-15 07:49:18
Ответ 3
import datetime
datetime.date.today() # Returns 2018-01-15
datetime.datetime.now() # Returns 2018-01-15 09:00
Ответ 4
import datetime
Текущая дата и время
print(datetime.datetime.now())
#2019-09-08 09:12:12.473393
Только текущая дата
print(datetime.date.today())
#2019-09-08
Только текущий год
print(datetime.date.today().year)
#2019
Только за текущий месяц
print(datetime.date.today().month)
#9
Только текущий день
print(datetime.date.today().day)
#8