>  기사  >  백엔드 개발  >  '2013-W26'에서 Python의 주 번호를 날짜로 변환하는 데 실패하는 이유는 무엇입니까?

'2013-W26'에서 Python의 주 번호를 날짜로 변환하는 데 실패하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-11 02:31:03303검색

Why Does Converting Week Numbers to Dates in Python Fail with

주 번호를 날짜로 변환

다음 코드를 사용하여 주 번호를 날짜로 변환하려고 시도하는 동안 문제가 발생했습니다.

import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d, "%Y-W%W")
print(r)

이 코드를 실행하면 "2013-01-01 00:00:00"이 표시될 것으로 예상했지만 대신 오류가 발생했습니다. 이 문제의 원인과 해결 방법을 살펴보겠습니다.

문제 해결

주 단위를 날짜로 정확하게 변환하려면 주 단위 이외의 추가 정보가 필요합니다. 그 자체, 즉 요일. 코드에 기본 요일을 추가하면 이 문제가 해결됩니다. 수정된 코드는 다음과 같습니다.

import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d + '-1', "%Y-W%W-%w")
print(r)

수정 설명

이 수정에서는 '-1' 및 '-%w' 패턴 추가가 중요합니다. '-1'은 파서에게 특정 주의 월요일을 선택하도록 지시하고 '-%w'는 월요일을 기준으로 요일을 조정합니다. 예를 들어, '-%w'를 사용하면 제공된 주 번호가 월요일에 해당하는 경우 일요일이 반환됩니다.

%W 및 각주 4의 동작

Python 문서의 strftime() 및 strptime() 동작 섹션의 각주 4는 귀중한 통찰력을 제공합니다. "strptime() 메서드와 함께 사용하면 %U 및 %W는 요일과 연도가 지정된 경우에만 계산에 사용됩니다."

추가 참고 사항

ISO 주간 날짜를 처리하는 경우 대신 %G-W%V-%u를 활용할 수 있습니다. 이러한 지시어에는 Python 3.6 이상이 필요합니다.

위 내용은 '2013-W26'에서 Python의 주 번호를 날짜로 변환하는 데 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.