Seongwon Lim

[Python] datetime 모듈로 날짜 및 시간 구하기 본문

Python

[Python] datetime 모듈로 날짜 및 시간 구하기

limsw 2022. 5. 15. 21:17
반응형

서론

프로그래밍을 하다보면 현재 날짜 혹은 특정 날짜를 알아야 하는 경우가 존재한다.

이번 글에서는 파이썬에서 제공하는 datetime 모듈을 이용해서 현재 날짜를 구하는 방법, 그리고 현재 날짜를 기준으로 다양한 날짜를 구하는 방법을 간단하게 살펴보고자 한다.

 

먼저, 해당 모듈을 사용하기 위해 라이브러리를 불러온다.

from datetime import datetime, timedelta

현재 날짜(시간) 구하기

now = datetime.now() # 또는 datetime.today()
print(now)
# 결과 : 2022-05-15 21:02:26.837966

 

datetime의 기본 형식을 수정하고 싶은 경우 strftime 형식을 사용하고 datetime모듈 내에 내장된 strftime()메서드를 호출하여 형식을 변경할 수 있다. 예시로 살펴보자.

현재 날짜 년도-월-일 파싱하여 가져오기

now = datetime.now()
print(now.strftime('%Y-%m-%d'))
# 결과 : 2022-05-15

년도-월-일 시/분 까지 파싱하여 가져오기

해당 예제는 초, 밀리초를 제외한 현재 날짜를 가져오는 예제이다.

now = datetime.now()
print(now.strftime('%Y-%m-%d %H:%M'))
# 결과 : 2022-05-15 21:07

현재 날짜로부터 하루 전(후) 날짜 가져오기

이번에는 timedelta를 이용해서 현재 날짜로부터 특정 날짜를 구하는 예제를 살펴보고자 한다.

 

먼저, 현재 날짜를 기준으로 1시간 전(후) 시간을 구하려면 다음과 같이 구할 수 있다.

now = datetime.now() # 2022-05-15 21:09:52.501080
before_1_hour = now - timedelta(hours=1)
after_1_hour = now + timedelta(hours=1)
print(before_1_hour) # 2022-05-15 20:09:52.501080
print(after_1_hour) # 2022-05-15 22:09:52.501080

timedelta()의 인자로 hours를 주면 현재 시간으로부터 몇시간 전(후)를 구할 수 있다.

마찬가지로 몇 분 전(후)를 구하려면 인자로 minutes, 몇 초 전(후)를 구하려면 인자로 seconds를 사용하면 된다.

 

다음으로는, 현재 날짜를 기준으로 몇 일, 몇 주 전(후) 날짜를 구하는 예제를 살펴보자.

now = datetime.now()
before_1_day = now - timedelta(days=1) # 현재 날짜로부터 하루 전 날짜를 반환
after_2_week = now + timedelta(weeks=2) # 현재 날짜로부터 2주 뒤 날짜를 반환
print(before_1_day) # 2022-05-14 21:13:20.819210
print(after_2_week) # 2022-05-29 21:13:20.819210

위 코드와 같이 인자에 days, weeks 를 사용하여 현재 날짜로부터 다양한 날짜를 추출할 수 있다.

 

만약에, 현재 날짜로부터 3주 뒤의 년-월-일을 구하고 싶다면

now = datetime.now()
after_3_week = now + timedelta(weeks=3)
print(after_3_week.strftime('%Y-%m-%d'))

이런 식으로 코드를 구성할 수 있다.

Comments