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)

빠른 답변 감사합니다! :) 여분의 날짜 변수없이 할 수있는 방법이 있는지 궁금하십니까? (저는 파이썬 초보자입니다)
user1678031

2
그렇습니다 date = datetime.strptime('26 Sep 2012', '%d %b %Y').replace(hour=11, minute=59). 줄이 너무 길지 않도록 여분의 변수를 사용했습니다. :)
nneonneo

14
또한 주목할 가치가 있습니다 : 날짜 시간 datetime.replace의 새로운 사본 을 반환합니다 ( datetime불변 이기 때문에 ) str.replace.
nneonneo

시간과 초가 사라지도록 '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.