Python 날짜, 시간을 문자열로 변환하는 방법 (date to string, time to string) - strftime
Python 에서 날짜 형식과 시간 형식을 원하는 문자열 형식으로 변환하는 방법을 알려드리도록 하겠습니다.
Python 에서 strftime() 을 사용하시면 datetime, time 등의 날짜, 시간 형식을 원하는 문자열로 변경할 수 있습니다.
strftime()
from datetime import datetime
dt = datetime(2021, 12, 31, 13, 35, 42, 657813)
result = dt.strftime("%Y년 %m월 %d일 %H시 %M분 %S.%f초")
print("문자열 변환 전 형식 : ", type(dt))
print("문자열 변환 후 출력 : ", dt)
print("문자열 변환 후 형식 : ", type(result))
print("문자열 변환 후 출력 : ", result)
# Output
# 문자열 변환 전 형식 : <class 'datetime.datetime'>
# 문자열 변환 후 출력 : 2021-12-31 13:35:42.657813
# 문자열 변환 후 형식 : <class 'str'>
# 문자열 변환 후 출력 : 2021년 12월 31일 13시 35분 42.657813초
datetime 모듈을 사용하여 날짜와 시간을 지정하고 출력하는 예시를 들었습니다.
strftime() 을 사용하여 위와 같이 날짜, 시간 형식을 원하는 문자열 형식으로 변환하여 사용할 수 있습니다.
datetime 모듈 뿐만 아니라 time 모듈에도 사용 가능합니다.
strftime()에 사용되는 포맷 코드는 예시에 사용된 것 이외에도 아주 많은 것들이 있습니다.
strftime 포맷 코드 표
그룹 | 코드 | 의미 |
년 | %Y | 연도 (전체) |
%y | 연도 (뒤에 2자리만) | |
월 | %m | 월 |
%B | Locale 월 표현 (전체) | |
%b | Locale 월 표현 (축약형) | |
일 | %d | 일 |
%j | 연중 일 | |
시 | %H | 시 (24시간제) |
%I | 시 (12시간제) | |
%p | Locale 오전, 오후 | |
분 | %M | 분 |
초 | %S | 초 |
마이크로초 | %f | 마이크로초 |
요일 | %w | 요일 (0 : 일요일, 6일 : 토요일) |
%A | Locale 요일 (전체) | |
%a | Locale 요일 (축약형) | |
주 | %W | 연중 몇 번째 주인지 표현 (월요일 시작 기준) |
%U | 연중 몇 번째 주인지 표현 (일요일 시작 기준) | |
날짜 표현 | %c | Locale 날짜와 시간 표현 |
%x | Locale 날짜 표현 | |
%X | Locale 시간 표현 | |
문자 표현 | %% | 리터럴 '%' 문자 |
위 표를 참고하셔서 원하는 포맷으로 날짜 및 시간 형식을 원하는 형식의 문자열로 변경하여 사용하시면 되겠습니다.
from datetime import datetime
dt = datetime(2021, 12, 31, 13, 35, 42, 657813)
print(dt)
print("%Y (연도 (전체)) :", dt.strftime("%Y"))
print("%y (연도 (뒤에 2자리만) : ", dt.strftime("%y"))
print("%m (월) : ", dt.strftime("%m"))
print("%B (Locale 월 표현 (전체)) : ", dt.strftime("%B"))
print("%b (Locale 월 표현 (축약형)) : ", dt.strftime("%b"))
print("%d (일) : ", dt.strftime("%d"))
print("%j (연중 일) : ", dt.strftime("%j"))
print("%H (시 (24시간제)) : ", dt.strftime("%H"))
print("%I (시 (12시간제)) : ", dt.strftime("%I"))
print("%p (Locale 오전, 오후) : ", dt.strftime("%p"))
print("%M (분) : ", dt.strftime("%M"))
print("%S (초) : ", dt.strftime("%S"))
print("%f (마이크로초) : ", dt.strftime("%f"))
print("%w (요일 (0 : 일요일, 6일 : 토요일)) : ", dt.strftime("%w"))
print("%A (Locale 요일 (전체)) : ", dt.strftime("%A"))
print("%a (Locale 요일 (축약형)) : ", dt.strftime("%a"))
print("%W (연중 몇 번째 주인지 표현 (월요일 시작 기준)) : ", dt.strftime("%W"))
print("%U (연중 몇 번째 주인지 표현 (일요일 시작 기준)) : ", dt.strftime("%U"))
print("%c (Locale 날짜와 시간 표현) : ", dt.strftime("%c"))
print("%x (Locale 날짜 표현) : ", dt.strftime("%x"))
print("%X (Locale 시간 표현) : ", dt.strftime("%X"))
print("%% (리터럴 '%' 문자) : ", dt.strftime("%%"))
# Output
# 2021-12-31 13:35:42.657813
# %Y (연도 (전체)) : 2021
# %y (연도 (뒤에 2자리만) : 21
# %m (월) : 12
# %B (Locale 월 표현 (전체)) : December
# %b (Locale 월 표현 (축약형)) : Dec
# %d (일) : 31
# %j (연중 일) : 365
# %H (시 (24시간제)) : 13
# %I (시 (12시간제)) : 01
# %p (Locale 오전, 오후) : PM
# %M (분) : 35
# %S (초) : 42
# %f (마이크로초) : 657813
# %w (요일 (0 : 일요일, 6일 : 토요일)) : 5
# %A (Locale 요일 (전체)) : Friday
# %a (Locale 요일 (축약형)) : Fri
# %W (연중 몇 번째 주인지 표현 (월요일 시작 기준)) : 52
# %U (연중 몇 번째 주인지 표현 (일요일 시작 기준)) : 52
# %c (Locale 날짜와 시간 표현) : Fri Dec 31 13:35:42 2021
# %x (Locale 날짜 표현) : 12/31/21
# %X (Locale 시간 표현) : 13:35:42
# %% (리터럴 '%' 문자) : %
관련 정보
이상으로 Python에서 날짜 형식과 시간 형식을 원하는 문자열 형식으로 변환하는 방법에 대한 설명을 마치도록 하겠습니다.
도움이 되셨다면 공감, 댓글 부탁드립니다!
궁금하신 점이나 요청사항은 언제든지 말씀해주세요!
피드백도 언제나 환영입니다!
감사합니다.
참고 차료 : https://docs.python.org/ko/3/library/datetime.html?highlight=strftime#datetime.datetime.strftime
'Developer > Python' 카테고리의 다른 글
Python List 배열 요소 중복 횟수 구하는 방법 (count duplicates in list) (0) | 2021.12.31 |
---|---|
Python 문자열을 날짜, 시간으로 변환하는 방법 (string to date, string to time) - strptime (0) | 2021.12.30 |
Python 현재 날짜, 현재 시간 구하는 2가지 방법 (datetime, time) (0) | 2021.12.28 |
Python List 배열 중복 제거 방법 (순서 유지 방법, 순서 유지 하지 않는 방법) (0) | 2021.12.27 |
Python 문자열 중복되는 공백 하나의 공백으로 만드는 방법, 제거 방법 2가지 (0) | 2021.12.25 |
댓글