[Django]-Django python date time set to midnight

57👍

Try this:

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

65👍

Using datetimes’s "combine" with the time.min and time.max will give both of your datetimes.
For example:

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)  

Result with pub_date of 2013-06-05:

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

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

👤raman

23👍

Are you sure you don’t want to use dates instead of datetimes? If you’re always setting the time to midnight, you should consider using a date. If you really want to use datetimes, here’s a function to get the same day at midnight:

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

12👍

For tz-aware dates it should be:

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

1👍

datetime instance attributes like year, month, day, hour, etc are read-only, so you just have to create a new datetime object and assign it to end_date.

Leave a comment