Python datetime-strptimeを使用して日、月、年を取得した後、固定の時間と分を設定する


174

私はうまく26 Sep 2012フォーマットを何かに変換することに成功しました26-09-2012

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

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

これは、現在の日付だけでなく、将来の日付または任意の日付にすることができます。

回答:


363

使用datetime.replace

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

早速のお返事ありがとうございます!:)余分な日付変数なしでそれを行う方法があるかどうかだけ知りたいですか?(私はpython初心者です)
user1678031

2
はい、実行してくださいdate = datetime.strptime('26 Sep 2012', '%d %b %Y').replace(hour=11, minute=59)。行が長くなりすぎないように、追加の変数を使用しました:)
nneonneo

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

「2016-06-01」以降のすべてを削除して、時間と分が消えるようにするにはどうすればよいですか?
PV8

46

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

8
5年前に投稿されたnneonneoの回答に対するあなたの回答の付加価値は何ですか?
Samuel Dauzon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.