38

djangoオブジェクトの日時がありますが、それは1日のどの時間でもかまいません。1日中いつでも可能ですが、時刻を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'は読み取り専用です

4

5 に答える 5

57

datetimesの「combine」を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)  

2013年6月5日の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)

于 2013-06-05T13:58:31.473 に答える
54

これを試して:

import datetime
pub = lastItem.pub_date
end_date = datetime.datetime(pub.year, pub.month, pub.day)
于 2011-12-02T18:56:35.600 に答える
23

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

def set_to_midnight(dt):
    midnight = datetime.time(0)
    return datetime.datetime.combine(dt.date(), midnight)
于 2011-12-02T18:55:18.303 に答える
10

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

datetime.combine(dt.date(), datetime.min.time(), dt.tzinfo)
于 2017-12-04T11:16:46.993 に答える
1

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

于 2011-12-02T18:59:33.927 に答える