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

Python에서 현재 날짜와 시간을 가져오는 방법 총정리

Python에서 현재 날짜와 시간을 얻는 방법은 여러 가지가 있습니다. 그중 가장 간단하고 널리 사용되는 방법은 표준 라이브러리인 datetime 모듈을 활용하는 것입니다. datetime 모듈의 now() 함수를 호출하면 현재 날짜와 시간을 손쉽게 확인할 수 있습니다.

기본 사용 예제

import datetime
now = datetime.datetime.now()
print("현재 날짜와 시간: ")
print(str(now))

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

2017-12-29 11:24:48.042720

strftime으로 날짜·시간 형식 지정하기

원하는 형식으로 날짜와 시간을 표현하고 싶다면 strftime() 함수를 사용하면 됩니다. 이 함수는 포맷 문자열(format string)을 인자로 받아, 해당 형식에 맞게 변환된 문자열을 반환합니다. 아래 표는 strftime에서 사용할 수 있는 주요 포맷 지시자(directive) 목록입니다.

지시자의미
%a요일의 축약형 이름 (예: Mon, Tue)
%A요일의 전체 이름 (예: Monday, Tuesday)
%b월의 축약형 이름 (예: Jan, Feb)
%B월의 전체 이름 (예: January, February)
%c해당 로케일에 적합한 날짜 및 시간 표현
%d일(day)을 십진수로 표현 [01~31]
%H시간(24시간제)을 십진수로 표현 [00~23]
%I시간(12시간제)을 십진수로 표현 [01~12]
%j연중 몇 번째 날인지를 십진수로 표현 [001~366]
%m월을 십진수로 표현 [01~12]
%M분을 십진수로 표현 [00~59]
%pAM 또는 PM에 해당하는 로케일 표현
%S초를 십진수로 표현 [00~61]
%U연중 몇 번째 주인지를 십진수로 표현 [00~53] (일요일이 한 주의 시작). 새해 첫 일요일 이전의 날들은 0주차로 간주됩니다.
%w요일을 십진수로 표현 [0(일요일)~6]
%W연중 몇 번째 주인지를 십진수로 표현 [00~53] (월요일이 한 주의 시작). 새해 첫 월요일 이전의 날들은 0주차로 간주됩니다.
%x해당 로케일에 적합한 날짜 표현
%X해당 로케일에 적합한 시간 표현
%y세기를 제외한 연도를 십진수로 표현 [00~99]
%Y세기를 포함한 연도를 십진수로 표현 (예: 2017)
%Z시간대(time zone) 이름 (시간대 정보가 없으면 빈 문자열)
%%문자 '%' 자체를 표현

strftime 활용 예제

위에서 소개한 지시자들을 strftime 함수에 조합하여 사용하면 다음과 같습니다.

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

이처럼 Python의 datetime 모듈과 strftime 함수를 활용하면 현재 날짜와 시간을 다양한 형식으로 자유롭게 출력할 수 있습니다. 로그 기록, 파일명 생성, 사용자 인터페이스 표시 등 실무에서 매우 유용하게 활용되니 위 지시자들을 익혀두면 큰 도움이 됩니다.