본문 바로가기

파이썬

[Python] 날짜와 시간을 다루는 모듈 - datetime

728x90

datetime 이란?

파이썬 공식문서에서 datetime 모듈은 아래와 같이 정의되어 있다.

The datetime module provides classes for representing date and time information. It also provides functions for manipulating date and time objects, and for formatting and parsing date and time strings.

한글로 번역하면 아래와 같다.

datetime 모듈은 날짜와 시간 정보를 표현하는 클래스와 날짜와 시간 객체를 조작하고, 날짜와 시간 문자열을 포맷하고 구문 분석하는 함수를 제공하는 모듈이다.

즉, 날짜와 시간을 서로 비교하거나 연산을 하는데 매우 편리하게 해준다.

간단한 예시를 들어보자면, 임의의 날짜가 2개 주어진다면 그 날짜의 차이를 비롯해 연산을 쉽게 할 수 있다.

datetime 모듈이 제공하는 클래스들

  • datetime: 날짜와 시간을 모두 나타내는 클래스
  • date: 날짜만 나타내는 클래스
  • time: 시간만 나타내는 클래스
  • timedelta: 날짜와 시간의 차이를 나타내는 클래스

datetime 모듈을 사용하는 예시

datetime 클래스

import datetime

# 오늘 날짜
today = datetime.datetime.today()

# 오늘 날짜와 3일 후의 날짜
three_days_later = today + datetime.timedelta(days=3)

# 오늘 날짜의 문자열 표현
today_str = today.strftime("%Y-%m-%d")

print(today)
print(three_days_later)
print(today_str)

datetime 출력

2023-11-28 14:15:00.000000
2023-12-01 14:15:00.000000
2023-11-28

date 클래스

# 오늘 날짜
today = datetime.date.today()

# 오늘 날짜의 문자열 표현
today_str = today.strftime("%Y-%m-%d")

print(today)
print(today_str)

date 출력

2023-11-28
2023-11-28

time 클래스

# 현재 시간
now = datetime.time.now()

# 현재 시간의 문자열 표현
now_str = now.strftime("%H:%M:%S")

print(now)
print(now_str)

time 출력

14:15:00
14:15:00

timedelta 클래스

# 오늘 날짜와 3일 후의 날짜
three_days_later = datetime.datetime.today() + datetime.timedelta(days=3)

# 오늘 날짜와 3일 후의 날짜의 차이
three_days_delta = three_days_later - datetime.datetime.today()

print(three_days_later)
print(three_days_delta)

timedelta 출력

2023-12-01 14:15:00.000000
2 days, 00:00:00

strftime() 함수

import datetime

# 오늘 날짜
today = datetime.datetime.today()

# 오늘 날짜의 문자열 표현
today_str = today.strftime("%Y-%m-%d")

print(today_str)

출력

2023-11-28

strptime() 함수

import datetime

# 문자열을 날짜와 시간으로 구문 분석
today_str = "2023-11-28 14:15:00"
today = datetime.datetime.strptime(today_str, "%Y-%m-%d %H:%M:%S")

print(today)

출력

2023-11-28 14:15:00