web-dev-qa-db-ja.com

django python真夜中に設定された日時

私はDjangoオブジェクトの日付時刻を持っていますが、それは一日中いつでも可能です。一日中いつでも可能ですが、私の時間を00:00に設定する必要があります。 00(および23:59:59までの別の日付ですが、原則は同じです)

end_date = lastItem.pub_date

現在、終了日は2002-01-11 12:34:56です。これを取得して00:00:00に変更するにはどうすればよいですか?

私は試した:

end_date.hour = '00'

ただし、「datetime.datetime」オブジェクト属性「time」は読み取り専用です

32
Designer023

これを試して:

import datetime
pub = lastItem.pub_date
end_date = datetime.datetime(pub.year, pub.month, pub.day)
45
mipadi

日時の「組み合わせ」をtime.minおよびtime.maxと使用すると、両方の日時が得られます。例えば:

from datetime import date, datetime, time
pub_date = date.today()
min_pub_date_time = datetime.combine(pub_date, time.min) 
max_pub_date_time = datetime.combine(pub_date, time.max)  

6/5/2013のpub_dateの結果:

min_pub_date_time-> datetime.datetime(2013、6、5、0、0)

max_pub_date_time-> datetime.datetime(2013、6、5、23、59、59、999999)

41
raman

日付時刻の代わりに日付を使用したくないのですか?常に真夜中に時刻を設定している場合は、日付の使用を検討する必要があります。本当に日付時刻を使用したい場合、同じ日の真夜中を取得する関数を次に示します。

def set_to_midnight(dt):
    midnight = datetime.time(0)
    return datetime.datetime.combine(dt.date(), midnight)
19
Gavin Wahl

年、月、日、時間などのdatetimeインスタンス属性は 読み取り専用 であるため、新しいdatetimeオブジェクトを作成し、end_dateに割り当てるだけです。 。

1
jan zegan

Tz対応の日付の場合、次のようになります。

datetime.combine(dt.date(), datetime.min.time(), dt.tzinfo)
1