django python date time установлен в полночь

У меня есть дата моего объекта 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' атрибут объекта 'время' доступен только для чтения

Попробуй это:

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

Использование datetimes's «comb» с 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) 

Результат с pub_date от 5/5/2013:

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

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

Вы уверены, что не хотите использовать даты вместо даты? Если вы всегда устанавливаете время до полуночи, вам следует рассмотреть возможность использования даты. Если вы действительно хотите использовать datetimes, вот функция, чтобы получить тот же день в полночь:

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

атрибуты экземпляра datetime такие как год, месяц, день, час и т. д., доступны только для чтения , поэтому вам просто нужно создать новый объект datetime и назначить его end_date .