본문 바로가기

Back-End/Python

[Python][파이썬] 라이브러리 활용 - datetime, timedelta, relativedelta

~ 목차 ~

파이썬에서 다양한 라이브러리를 이용해보았다.

그 중 날짜와 시간에 관한 내용을 다루는 라이브러리들을 사용해보자.

 

< 라이브러리 >

  • datetime
  • pytz
  • relativedelta

import는 4가지를 해 주었다.

from datetime import datetime
from datetime import timedelta
from pytz import timezone
from dateutil.relativedelta import relativedelta

datetime 라이브러리를 사용할 때 가끔 timezone 문제 발생하는 경우가 많아서 pytz를 같이 가져오는게 좋음

 


 

  • 현재 날짜 시간 가져옴 (but, 서버가 시간 동기화가 안된 경우 현재 시간이 안나올 수 있음)
  • now()
print(datetime.now())

결과

2023-11-08 15:23:38.763439

 

 

 

 

  • 타임존 기준 현재 날짜 시간 가져옴.
  • timezone()
print(datetime.now(timezone('UTC')))
print(datetime.now(timezone('Asia/Seoul')))

결과

2023-11-08 06:28:36.970174+00:00
2023-11-08 15:28:36.970174+09:00

 

 

 

 

  • 변수로 설정 가능, type 확인
  • type()
x = datetime.now(timezone('Asia/Seoul'))
print(type(x))

결과

<class 'datetime.datetime'>

 

 

 

 

  • 연도, 월, 일, 시간, 분, 초, 밀리초 따로 출력 가능 
  • date(), time()
print(x.year, x.month, x.day, x.hour, x.minute, x.second, x.microsecond)

결과

2023 11 8 17 17 11 688699

 

 

 

 

print(x.date(), x.time())

결과

2023-11-08 15:29:08.658872

 

 

 

 

  • weekday() : OO요일 (월요일 - 0, 화요일 - 1, 수요일 - 2, 목요일 - 3, 금요일 - 4, 토요일 - 5, 일요일 - 6)
print(x.weekday())

결과

2

 

 

 

 

  • strftime() : 날짜 및 시간 객체를 문자열로 형식화하는 메서드, 특정 서식 지정자(Format Directive)를 사용
    ( %Y: OOOO년도 %y : OO년 )
print(x.strftime('%Y년%y년%m월%d일'))

결과

2023년23년11월08일

 

 

 

 

  • help() : 라이브러리 함수의 정보를 얻을 수 있다.
help('datetime.datetime')

 

 

 

 

  • 지정된 날짜를 출력하고 싶을 때
x = datetime.strptime('2023-11-07', '%Y-%m-%d')
print(x.month)
print(x.day)

결과

11

7

 

 

 

 

  • 날짜 연산 : timedelta(), relativedelta() ( relativedelta이 더 넓은 범위까지 바꿀 수 있음)
  • x 날짜에서 7일을 빼고 싶을 때(timedelta - 월, 년x)
print(x - timedelta(days=7))

결과

2023-10-31 00:00:00

 

 

 

  • x 날짜에서 2개월을 빼고 싶을 때(relativedelta - 월, 년o)
print(x - relativedelta(months=2))

결과

2023-09-07 00:00:00

728x90