728x90
반응형
728x90
목 차
반응형
파이썬에서 날짜와 시간을 포맷팅하거나 문자열로 변환하는 작업은 주로 datetime 모듈의 strftime 및 strptime 메서드를 사용하여 수행됩니다.
1. 날짜를 문자열로 변환하기 (strftime)
1-1. 기본 사용
datetime.strftime(format) 메서드를 사용하여 날짜와 시간을 원하는 형식의 문자열로 변환합니다.
from datetime import datetime
now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print("포맷된 날짜:", formatted_date)
'''
실행 결과
포맷된 날짜: 2025-01-08 12:24:44
'''
1-2. 주요 포맷 코드
코드 | 의미 | 예제 (2025-01-07 15:30:45 기준) |
%Y | 4자리 연도 | 2025 |
%y | 2자리 연도 | 25 |
%m | 2자리 월 (01~12) | 01 |
%B | 월 이름 (영문, 전체) | January |
%b | 월 이름 (영문, 축약형) | Jan |
%d | 2자리 일 (01~31) | 07 |
%A | 요일 이름 (영문, 전체) | Tuesday |
%a | 요일 이름 (영문, 축약형) | Tue |
%H | 24시간제 시간 (00~23) | 15 |
%I | 12시간제 시간 (01~12) | 03 |
%p | 오전/오후 (AM/PM) | PM |
%M | 분 (00~59) | 30 |
%S | 초 (00~59) | 45 |
%f | 마이크로초 (6자리) | 123456 |
%j | 연중 일수 (001~366) | 007 |
%W | 연중 주차 (월요일 시작) | 02 |
%w | 요일 숫자 (0=일요일, 6=토요일) | 2 |
1-3. 포맷팅 예제 소스
- 기본 날짜와 시간
from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 2025-01-08 12:37:06
- 사용자 정의 포맷
from datetime import datetime
now = datetime.now()
print(now.strftime("%d/%m/%Y")) # 08/01/2025
print(now.strftime("%I:%M %p")) # 12:38 PM
- 요일과 월 이름
from datetime import datetime
now = datetime.now()
print(now.strftime("%A, %B %d, %Y")) # Wednesday, January 08, 2025
2. 문자열을 날짜로 변환하기 (strptime)
2-1. 기본 사용
datetime.strptime(date_string, format) 메서드를 사용하여 문자열을 날짜 객체로 변환합니다.
from datetime import datetime
date_string = "2025-01-07 15:30:45"
date_object = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print("날짜 객체:", date_object)
'''
실행 결과
날짜 객체: 2025-01-07 15:30:45
'''
2-2. 유효성 검사
strptime을 사용하면 문자열 형식이 올바르지 않은 경우 ValueError를 발생시킵니다.
from datetime import datetime
try:
invalid_date = "2025/01/07"
datetime.strptime(invalid_date, "%Y-%m-%d")
except ValueError as e:
print("날짜 형식이 잘못되었습니다:", e)
'''
실행 결과
날짜 형식이 잘못되었습니다: time data '2025/01/07' does not match format '%Y-%m-%d'
'''
3. UTC 시간대 구하는 예제 소스
from datetime import datetime
from pytz import timezone
utc = timezone("UTC")
seoul = timezone("Asia/Seoul")
now_utc = datetime.now(utc)
now_seoul = now_utc.astimezone(seoul)
print("UTC:", now_utc.strftime("%Y-%m-%d %H:%M:%S"))
print("서울 시간:", now_seoul.strftime("%Y-%m-%d %H:%M:%S"))
'''
실행 결과
UTC: 2025-01-08 04:54:16
서울 시간: 2025-01-08 13:54:16
'''
관련글
728x90
반응형
'프로그래밍 > [Python] 파이썬' 카테고리의 다른 글
[python] 파이썬 아스키코드(ASCII) 변환 함수 (42) | 2025.01.09 |
---|---|
[Python] 파이썬 날짜, 시간 더하기 빼기 (77) | 2025.01.08 |
[Python] timedelta와 relativedelta의 시간 계산 차이점 (73) | 2025.01.07 |
Epoch time(에포크 시간)에 대하여 (133) | 2025.01.05 |
[Python] 파이썬 자주 사용하는 random 모듈 함수들 (71) | 2025.01.04 |