본문 바로가기
프로그래밍/[Python] 파이썬

[Python] 파이썬 날짜/시간 포맷팅 다루기 (strftime, strptime)

by GenieIT* 2025. 1. 8.
728x90
반응형
728x90
반응형

 

파이썬에서 날짜와 시간을 포맷팅하거나 문자열로 변환하는 작업은 주로 datetime 모듈의 strftimestrptime 메서드를 사용하여 수행됩니다.

 

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
반응형