파이썬에서 날짜와 시간 정보를 다룰 때 주로 사용되는 모듈은 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.
'Dev > python' 카테고리의 다른 글
[python] 숫자 1부터 100까지의 리스트 생성하기, range 객체를 list 객체로 변환하기 (0) | 2022.07.02 |
---|---|
[python, opencv] 웹캠 영상 출력하는 방법 (1) | 2022.07.01 |
[pandas] 데이터프레임 컬럼 순서 변경 (0) | 2022.07.01 |
[selenium] 셀레니움 크롤링 준비, 크롬 드라이버 다운로드 (0) | 2022.07.01 |
[pandas] Auto MPG 데이터셋 소개 (0) | 2022.06.29 |
[pandas] 이전 데이터와 비교할 때 유용한 데이터프레임 shift() 메소드 (1) | 2022.06.29 |
[pandas, matplotlib] EPL 빅6 팀의 2010년 이후 순위 비교 그래프 그리기(선 그래프, 막대 그래프) (0) | 2022.06.28 |
[pandas] 데이터프레임 컬럼명 또는 행 인덱스 바꾸는 방법 (0) | 2022.06.28 |