Подтвердить что ты не робот

Как получить текущую дату и текущее время только соответственно в Джанго?

Я столкнулся с интересной ситуацией при использовании этого класса:

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()) 

Но это, очевидно, создает исключение, так как теперь не существует таким образом. Есть ли другой способ добиться этого?

4b9b3361

Ответ 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