2022-06-30 23:36:11

파이썬에서 날짜와 시간 정보를 다룰 때 주로 사용되는 모듈은 datetime입니다. 시간 정보를 담고 있는 datetime 객체를 문자열로 바꿀 때 사용되는 메소드는 strftime입니다. datetime 객체를 년, 월, 일, 시, 분, 초 등으로 변환할 때 format 코드가 필요합니다. 이 format 코드가 생각보다 많이 헷갈려 사용할 때마다 구글링을 되풀이하곤 합니다. 그래서 오늘 한 번 쭉 정리하려고 합니다. 

 

strftime 사용법

import datetime

now = datetime.datetime.now()
print(type(now))
print(now)

now_str = now.strftime('%Y년 %m월 %d일 %H시 %M분 %S초')
print(type(now_str))
print(now_str)

 

현재 날짜 시간 정보를 담은 datetime 객체를 문자열로 변환하는 코드입니다. 변환할 때 형식이 "2022년 6월 30일 18시 31분 34초"와 같이 되도록 %Y, %m, %d 등의 포맷 코드를 활용했습니다.

 

 

datetime 객체가 string 객체(문자열)로 잘 변환된 것을 확인하실 수 있습니다. 

 

strftime 메소드 포맷 코드 정리

자주 사용되는 것부터 나열하겠습니다.

 

%Y

연도 - 2020, 2021, 2022

 

%m

월 - 01, 02, ..., 12

한 자리 수의 월인 경우에는 0을 붙여서 두자리로 만들어줍니다.

 

%d

일 - 01, 02, ..., 31

한 자리 수의 일인 경우에는 0을 붙여서 두자리로 만들어줍니다.

 

%H

시 - 00, 01, ..., 23

24시간으로 표현합니다.

 

%I

시 - 01, 02, ..., 12

12시간으로 표현합니다.

 

%M

분 - 00, 01, ..., 59

 

%S

초 - 00, 01, ..., 59

 

%f

마이크로초 - 000000 ~ 999999

 

%B

월 - January, February, ...

 

%b

월 - Jan, Feb, ...

 

%A

요일 - Sunday, Monday, Tuesday

 

%a

요일 - Sun, Mon, Tue

 

%w

요일 - 0, 1, ..., 6

요일을 숫자로 표현합니다. 0은 일요일, 1은 월요일, 6은 토요일입니다.

 

%y

연도 - 20, 21, 22

2020년은 20으로, 2021년은 21로 세기 정보를 빼고 표현합니다. 

 

%U

일요일이 한 주의 시작이라고 할 때 몇 번째 주인지 - 00, 01, ..., 53

 

%W

월요일이 한 주의 시작이라고 할 때 몇번째 주인지 - 00, 01, ..., 53

 

%j

일년 중 몇 번째 날인지 - 001, 002, ..., 366

 

%p

AM, PM

 

%c

날짜와 시간을 하나의 코드로 표현 - Thu Jun 30 22:31:25 2022

 

%x

날짜를 하나의 코드로 표현 - 06/30/22

 

%X

시간을 하나의 코드로 표현 - 22:31:07

 

자주 쓰이는 조합

이상의 포맷 코드를 활용하여 자주 쓰이는 조합이 있습니다. 이 중 필요한 것을 그대로 복사, 붙여넣기해서 활용하세요. 

 

1) %Y-%m-%d %H:%M:%S

 

 

2) %m/%d/%Y, %H:%M:%S

 

 

3) %d %b, %Y

 

 

4) %A, %B %d, %Y

 

 

5) %I:%M:%S %p

AM, PM은 시간 뒤에 붙습니다. 

 

 

관련 글

- [python] 문자열 4/21/2021을 April 21, 2021 또는 2021-04-21로 바꾸려면? (datetime 활용)

 

참고자료

[1] https://www.programiz.com/python-programming/datetime/strftime

[2] https://jsikim1.tistory.com/216