Python datetime - установка фиксированного часа и минуты после использования strptime для получения дня, месяца, года

Я успешно преобразовал что-то формата 26 Sep 2012 в 26-09-2012, используя:

datetime.strptime(request.POST['sample_date'],'%d %b %Y')

Однако я не знаю, как установить час и минуту что-то вроде выше, до 11:59. Кто-нибудь знает, как это сделать?

Примечание. Это может быть будущая дата или любая случайная, а не только текущая дата.

Ответ 1

Используйте datetime.replace:

from datetime import datetime
date = datetime.strptime('26 Sep 2012', '%d %b %Y')
newdate = date.replace(hour=11, minute=59)

Ответ 2

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

Предположим, что мы имеем объекты и дату datetime, представленные как: "2017-05-04"

>>> from datetime import datetime
>>> date = datetime.strptime('2017-05-04',"%Y-%m-%d")
>>> print(date)
2017-05-04 00:00:00
>>> date = date.replace(minute=59, hour=23, second=59, year=2018, month=6, day=01)
>>> print(date)
2018-06-01 23:59:59