strftime을 사용하여 기간 (AM / PM)을 어떻게 설명 할 수 있습니까?


152

특히 나는 이것을 단순화시키는 코드를 가지고있다 :

from datetime import datetime
date_string = '2009-11-29 03:17 PM'
format = '%Y-%m-%d %H:%M %p'
my_date = datetime.strptime(date_string, format)

# This prints '2009-11-29 03:17 AM'
print my_date.strftime(format)

무엇을 제공합니까? 파이썬은 날짜를 구문 분석 할 때 기간 지정자를 무시합니까? 아니면 바보 같은 일을하고 있습니까?

답변:


213

파이썬 time.strftime문서는 말합니다 :

strptime () 함수와 함께 사용될 때 %p, %I지시문이 시간을 구문 분석하는 데 사용되는 경우 지시문은 출력 시간 필드에만 영향을줍니다 .

확실하게, 작동 %H하도록 변경하십시오 %I.


2
어떤 대단한 하지 않는 한 (시간 문자열 오후 12시이, %I1에서 시작)!
Andy Hayden

1
@AndyHayden 오후 12시 또는 오전 12시입니다. 0 AM 또는 0 PM이 의미가 있는지 확실하지 않습니다. 24 시간 형식으로 만 0 시간이 의미가 있지만 AM / PM이 아닙니다.
아룬

또한 로케일을 확인하십시오. am / pm을 사용하지 않는 로케일을 사용하는 경우 am / pm을 사용하는 로케일로 전환해야합니다. 로케일로 de_DE를 사용할 때 % I 및 % p를 사용했으며 % p는 비어 있습니다. en_GB로 전환하면 % p이 (가) 표시되었습니다.
Torsten

56
format = '%Y-%m-%d %H:%M %p'

형식이 %H대신 사용 중 %I입니다. 이후 %H은 "24 시간"형식, 그것은 가능성이 그냥 폐기있어 %p정보를. 로 변경하면 제대로 작동 %H합니다 %I.



15

% H (24 시간 시계 시간)를 % I (12 시간 시계 시간)로 바꾸시겠습니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.