주 번호를 날짜로 변환
다음 코드를 사용하여 주 번호를 날짜로 변환하려고 시도하는 동안 문제가 발생했습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!