현재의 날짜와 시간 정보 구하기

파이썬에서 현재의 날짜와 시간정보를 구하는 방법을 알아보자.
이번 포스팅에서는 datetime 모듈을 이용하는 방법과 time 모듈을 사용하는 방법을 살펴본다.

datetime 모듈 이용하기

첫번째 방법은 datetime 모듈을 이용하는 방법이다.
오늘 날짜와 시간을 프린트하고, 날짜와 시간을 이용하여 파일명을 만드는 예제는 아래와 같다.

from datetime import datetime

now = datetime.now()

datetime_string_display = now.strftime("%Y년%m월%d일 %H시%M분%S초")
datetime_string = now.strftime("%Y%m%d%H%M%S")
filename = "file_" + datetime_string + ".txt"

print(datetime_string_display)
print(filename)

위 예제의 실행결과는 아래와 같다.

2024년05월06일 22시03분25초
file_20240506220325.txt

strftime()은 날짜/시간을 스트링 포맷으로 변환해 주는 함수이다.
이 함수에서 사용할 수 있는 지정자에 대한 설명은 아래를 참고하기 바라며, 위 예제코드에서 사용된 지정자는 빨강색으로 마킹되어 있다.

지정자 의미 예제
%c 날짜, 요일, 시간 출력 Tue May 4 00:33:26 2021
%x 날짜 출력 05/04/21
%X 시간 출력 00:33:26
%a 요일 (3문자) Sun, Mon, … Sat
%A 요일 (전체문자) Sunday, Monday, …, Saturday
%w 요일 (월~일을 숫자로 표시) 0, 1, …, 6
%d 01, 02, …, 31
%b 월 (3문자) Jan, Feb, …, Dec
%B 월 (전체문자) January, February, …, December
%m 01, 02, …, 12
%y 년 (2자리) 01, 02, …, 99
%Y 년 (4자리) 0001, 0002, …, 2017, 2018, 9999
%H 시 (24시간) 00, 01, …, 23
%I 시 (12시간) 01, 02, …, 12
%p AM, PM AM, PM
%M 00, 01, …, 59
%S 00, 01, …, 59
%Z 시간대 대한민국 표준시
%j 1월 1일부터 경과한 일수 001, 002, …, 366
%U 1년중 주차(월요일이 한 주의 시작) 00, 01, …, 53
%W 1년중 주차(월요일이 한 주의 시작) 00, 01, …, 53

time 모듈 사용하기

두번째 방법으로 소개하는 time 모듈은 위에서 설명한 datetime 모듈 보다도 더 많이 활용되고 있는 것 같다.

1. time.time() 함수
import time

timestamp = time.time()
print("현재시간(초):",timestamp)

위 예제의 실행결과는 아래와 같다.

현재시간(초): 1714910153.106455

time.time() 함수는 현재시간을 초 단위로 반환하며, 1970년 1월 1일 0시 0분 0초부터 현재까지의 경과시간을 초 단위로 변환하여 반환한다. 다만, 이 결과 값으로 현재의 날짜와 시간을 확인하는 것은 거의 불가능 할 것이다.

2. time.localtime() 함수
import time

timestamp = time.time()
lt = time.localtime(timestamp)
print(f"현재시간은 {lt.tm_year}년{lt.tm_mon}월{lt.tm_mday}일" , end="")
print(f"{lt.tm_hour}시{lt.tm_min}분{lt.tm_sec} 입니다.")

위 예제의 실행결과는 아래와 같다.

현재시간은 2024년5월6일 22시57분4 입니다.

time 모듈을 이용한 첫번째 예제에서 사용된 time.time() 함수의 반환값으로는 현재시간을 확인하기 어렵다. 그렇지만, time.localtime()를 이용하면 상세한 현재 날짜/시간 정보를 얻을 수 있다. time.localtime()의 아래와 같은 구조체를 결과값으로 반환한다.

구조체 변수 비고
tm_year 4자리 연도
tm_mon 1~12
tm_mday 1~31
tm_hour 0~23
tm_min 0~59
tm_sec 0~61
tm_wday 요일 0~6 (0:월요일)
tm_yday 연중 경과일 1~366
tm_isdst 일광절약타임 0: 미적용, 1: 적용

3. time.strftime() 함수
import time

timestamp = time.time()
lt = time.localtime(timestamp)
formatted = time.strftime("%Y년%m월%d일 %H시%M분%S초",lt)
print("현재시간 :",formatted)

위 예제의 실행결과는 다음과 같다.

현재시간 : 2024년05월06일 22시59분19초

이번 예제에서 사용된 strftime() 함수는 datetime 모듈의 예제에서 사용된 strftime() 함수와 동일한 방법으로 사용할 수 있다.