728x90
ValueError: time data '2024-99-99' does not match format '%Y-%m-%d'
오류는 문자열을 날짜로 변환하려 할 때, 입력한 문자열이 지정한 날짜 포맷과 일치하지 않으면 발생합니다. 주로 datetime.strptime()
함수를 사용할 때 발생하는 오류입니다.
날짜 형식을 다룰 때 입력 문자열이 올바른 형식을 따르고 있는지, 그리고 실제 존재 가능한 날짜인지 함께 확인해야 합니다.
● 오류 발생 예시
from datetime import datetime
date_str = "2024-99-99"
date = datetime.strptime(date_str, "%Y-%m-%d")
위 문자열은 존재하지 않는 월과 일(99월 99일)이므로 형식은 맞아도 실제 날짜로 변환이 불가능합니다.
● 주요 원인
- 날짜 형식 문자열이 잘못됨 (예:
'YYYY/MM/DD'
대신'%Y-%m-%d'
사용) - 존재하지 않는 날짜를 입력함 (예: 2024-02-30)
- 날짜 포맷 문자열이 잘못 지정됨
● 해결 방법
- 입력 문자열이 날짜 형식과 일치하는지 확인
try-except
블록으로 예외 처리하여 사용자 친화적인 메시지 출력- 날짜 유효성 검사를 사전에 수행
● 예시 코드 (정상 처리)
from datetime import datetime
date_str = "2024-03-15"
try:
date = datetime.strptime(date_str, "%Y-%m-%d")
print(date)
except ValueError:
print("날짜 형식이 잘못되었습니다.")
● 결론
문자열을 날짜로 변환할 때는 형식이 정확히 맞아야 하며, 실제 가능한 날짜인지까지도 검증됩니다. 따라서 strptime()
사용 시에는 포맷 문자열과 입력값 모두 신중히 다루어야 하며, 예외 처리를 통해 프로그램의 안정성을 높이는 것이 중요합니다.
728x90
'프로그래밍언어 > 파이썬[Error]' 카테고리의 다른 글
[파이썬][Error] 044. KeyError - 'key' when using dict[key] (0) | 2025.05.28 |
---|---|
[파이썬][Error] 041. IndexError - list index out of range (0) | 2025.05.28 |
[파이썬][Error] 043. KeyError - 'missing_key' (0) | 2025.05.28 |
[파이썬][Error] 042. IndexError - pop from empty list (0) | 2025.05.28 |
[파이썬][Error] 039. ValueError - 'x' is not in list (0) | 2025.05.27 |