web-dev-qa-db-ja.com

Djangoでのみ現在の日付と現在の時刻をそれぞれ取得するにはどうすればよいですか?

このクラスを使用すると、興味深い状況に遭遇しました。

class Company(models.Model):
    date = models.DateField()
    time = models.TimeField()
c = Company(date=datetime.datetime.now(), time=datetime.datetime.now()) 

Djangoは、formats.pyファイル内で定義されているDATETIME_INPUT_FORMATSを使用することにしました。 datetime.now()を両方のフィールドに渡すため、これは理にかなっています。

現在の日付と現在の時刻のみを渡した場合、Djangoを作成してそれぞれDATE_INPUT_FORMATSTIME_INPUT_FORMATSを使用できると思います。

このようなもの:

c = Company(date=datetime.date.now(), time=datetime.time.now()) 

しかし、このように存在しないため、これは明らかに例外をスローします。これを達成する別の方法はありますか?

76
Houman

日付には、datetime.date.today()またはdatetime.datetime.now().date()を使用できます。

当分の間、datetime.datetime.now().time()を使用できます。


しかし、そもそもなぜこれらのフィールドを分けているのでしょうか?単一のDateTimeFieldを使用しないのはなぜですか?

どちらか一方だけが必要な場合は、後で.date()または.time()を返すヘルパー関数をモデルにいつでも定義できます。

136
Amber
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
59
Abdul Razak
import datetime

datetime.date.today()  # Returns 2018-01-15

datetime.datetime.now() # Returns 2018-01-15 09:00
19
Ethan Brimhall