Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python strftime() 함수로 날짜·시간 원하는 형식으로 출력하기

Python에서 형식화된 날짜와 시간 얻기

Python에서 날짜와 시간을 원하는 형식으로 출력하고 싶다면 strftime() 함수를 사용하면 됩니다. 이 함수는 포맷 문자열(format string)을 인수로 받아, 지정한 형식에 맞춘 결과를 문자열로 반환합니다.

아래 표는 strftime() 함수에서 사용할 수 있는 주요 포맷 코드(directive)와 각 코드의 의미입니다.

strftime() 포맷 코드 정리

포맷 코드의미
%a지역 설정(locale) 기준 요일의 축약형 이름 (예: Mon, Tue)
%A지역 설정 기준 요일의 전체 이름 (예: Monday)
%b지역 설정 기준 월의 축약형 이름 (예: Jan)
%B지역 설정 기준 월의 전체 이름 (예: January)
%c지역 설정에 맞는 날짜와 시간 전체 표현
%d일(day), 10진수 표현 [01~31]
%H시(hour), 24시간제 10진수 표현 [00~23]
%I시(hour), 12시간제 10진수 표현 [01~12]
%m월(month), 10진수 표현 [01~12]
%M분(minute), 10진수 표현 [00~59]
%p오전/오후 표시 (AM 또는 PM)
%S초(second), 10진수 표현 [00~61]
%U연중 몇 번째 주인지 나타내는 숫자(일요일을 한 주의 시작으로 간주) [00~53]. 새해 첫 일요일 이전의 날들은 모두 0번째 주로 계산됩니다.
%w요일을 숫자로 표현 [0(일요일)~6(토요일)]
%W연중 몇 번째 주인지 나타내는 숫자(월요일을 한 주의 시작으로 간주) [00~53]. 새해 첫 월요일 이전의 날들은 모두 0번째 주로 계산됩니다.
%x지역 설정에 맞는 날짜 표현
%X지역 설정에 맞는 시간 표현
%y세기를 제외한 연도, 10진수 표현 [00~99]
%Y세기를 포함한 연도, 10진수 표현 (예: 2024)
%Z시간대(time zone) 이름 (시간대 정보가 없으면 빈 문자열)
%%문자 '%' 자체를 그대로 출력

사용 예제

위 포맷 코드들을 조합하면 다양한 형태로 날짜와 시간을 출력할 수 있습니다. 아래 예제를 살펴보겠습니다.

import datetime
now = datetime.datetime.now()
print("현재 날짜 및 시간:")
print(now.strftime('%Y-%m-%d %H:%M:%S'))
print(now.strftime('%H:%M:%S on %A, %B the %dth, %Y'))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

2017-12-29 12:19:13
12:19:13 on Friday, December the 29th, 2017

코드 설명

  • %Y-%m-%d %H:%M:%S — '2024-01-15 14:30:00'처럼 프로그래밍과 데이터 처리에 널리 쓰이는 표준적인 형식입니다.
  • %A, %B the %dth, %Y — 'Friday, December the 29th, 2017'처럼 사람이 읽기 좋은 영어 문장 형태의 날짜를 만들 수 있습니다.

이처럼 strftime()의 포맷 코드를 자유롭게 조합하면 로그 파일명, 보고서 제목, UI 표시 등 어떤 용도든 원하는 날짜·시간 형식을 손쉽게 만들 수 있습니다.