240

私は26 Sep 2012フォーマットの何かを26-09-2012使用するように正常に変換しました:

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

ただし、上記のような時間と分を11:59に設定する方法がわかりません。誰かがこれを行う方法を知っていますか?

これは、現在の日付だけでなく、将来の日付または任意のランダムな日付である可能性があることに注意してください。

4

4 に答える 4

483

使用datetime.replace:

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

また、注目に値する:datetime.replaceの新しいコピーを返しますdatetime(datetimeは不変であるため):str.replaceその点では似ています。

于 2012-09-18T00:28:24.963 に答える
59

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=1)
>>> print(date)
2018-06-01 23:59:59
于 2017-05-12T08:48:53.533 に答える