본문 바로가기
Language/Python

datetime, dateutil(날짜, 시간)

by Mesut Özil 2023. 12. 20.

datetime, dateutil 모듈은 날짜와 시간을 효과적으로 다루기 위한 다양한 도구를 제공하고 있습니다.

아래 나열된 클래스들은 가장 많이 사용되는 클래스들 중 일부로, 이 외에도 다양한 클래스와 함수들이 존재합니다.

 

1. date

날짜 정보만 다루는 클래스

 

from datetime import date

today_date = date.today()
print(today_date)

# 출력 결과: 2023-12-20

 

 

2. time

시간 정보만 다루는 클래스

 

from datetime import datetime

current_time = datetime.now().time()
print(current_time)

# 출력 결과: 12:07:52.346720

 

 

3. datetime

날짜시간을 모두 다루는 클래스

 

from datetime import datetime

current_datetime = datetime.now()
print(current_datetime)

# 출력 결과: 2023-12-20 12:08:53.081343

 

 

4. timedelta

두 날짜 또는 시간 사이의 차이를 나타내는 클래스

 

from datetime import datetime, timedelta
today_date = datetime.now()

weeks_ago_date = today_date - timedelta(weeks=2)
days_ago_date = today_date - timedelta(days=2)
hours_ago_date = today_date - timedelta(hours=2)

print(f'2주 전: {weeks_ago_date}')
print(f'2일 전: {days_ago_date}')
print(f'2시간 전: {hours_ago_date}')

# 출력 결과
2주 전: 2023-12-06 12:26:09.862400
2일 전: 2023-12-18 12:26:09.862400
2시간 전: 2023-12-20 10:26:09.862400

 

5. dateutil.relativedelta

날짜 간의 상대적인 차이를 다루는 클래스로, timedelta보다 더 강력한 기능을 제공

 

import datetime
from dateutil.relativedelta import relativedelta
today_date = datetime.date.today()

years_ago = today_date - relativedelta(years=2)
months_ago = today_date - relativedelta(months=2)
weeks_ago = today_date - relativedelta(weeks=2)

print(f'2년 전: {years_ago}')
print(f'2달 전: {months_ago}')
print(f'2주 전: {weeks_ago}')

# 출력 결과
2년 전: 2021-12-20
2달 전: 2023-10-20
2주 전: 2023-12-06

 

6. dateutil.parser

문자열  날짜, 시간 파싱하는 클래스와 함수를 제공

 

from dateutil import parser

date_string = "2023-12-20"
parsed_date = parser.parse(date_string)
print(parsed_date)

# 출력 결과: 2023-12-20 00:00:00

 

7. isocalendar

이 메서드는 ISO 8601 표준에 따라 날짜를 나타내는 데 사용

  • today_date.isocalendar()[0]: 해당 날짜의 연도 정보
  • today_date.isocalendar()[1]: 해당 날짜의 주차 정보
  • today_date.isocalendar()[2]: 해당 날짜의 요일 정보 (1~7: 월~일)
import datetime
today_date = datetime.datetime.today()

print(f'0) {today_date.isocalendar()}')

for i in range(3):
    print(f'{i+1}) {today_date.isocalendar()[i]}')

# 출력 결과
0) datetime.IsoCalendarDate(year=2023, week=51, weekday=3)
1) 2023
2) 51 ('51주차' 의미)
3) 3 (3='수요일' 의미)

 

 

 

본 게시글은 ChatGPT의 도움을 받아 작성하였습니다.

'Language > Python' 카테고리의 다른 글

map 함수  (0) 2023.12.21
:= (walrus 연산자)  (0) 2023.12.20
if-else, while, break, continue, pass  (2) 2023.12.05
eval 함수  (4) 2023.12.05
math 라이브러리  (2) 2023.12.04