[python/알고리즘] 날짜 및 시간 다루기 | datetime | timedelta | dateutil

·2024년 12월 9일
0

Datetime 패키지

import datetime as dt

datetime 클래스

dt.datetime.now()
# 결과: datetime.datetime(2024, 12, 9, 21, 58, 30, 24348)
  • 컴퓨터의 현재 시각을 datetime 클래스 객체로 만들어 반환
    • year
    • month
    • day
    • hour
    • minute
    • second
    • microsecond
x = dt.datetime.now()

x.year, x.month, x.day, x.hour, x.minute, x.second, x.microsecond

weekday

x.weekday() 
# 결과: {0:월, 1:화, 2:수, 3:목, 4:금, 5:토, 6:일}

strftime

  • 지정한 문자열 포맷으로 날짜, 시간 반환
x.strftime("""사용자 지정 포맷""")
  • %Y: 앞의 빈자리를 0으로 채우는 4자리 연도 숫자
  • %m: 앞의 빈자리를 0으로 채우는 2자리 월 숫자
  • %d: 앞의 빈자리를 0으로 채우는 2자리 일 숫자
  • %H: 앞의 빈자리를 0으로 채우는 24시간 형식 2자리 시간 숫자
  • %M: 앞의 빈자리를 0으로 채우는 2자리 분 숫자
  • %S: 앞의 빈자리를 0으로 채우는 2자리 초 숫자
  • %A: 영어로 된 요일 문자열
  • %B: 영어로 된 월 문자열
x = dt.datetime.now()
x.strftime('%Y-%m-%d')

# 결과: '2024-12-09'

strptime

  • 입력 받은 문자열로 datetime 객체 생성.
  • datetime.strptime(입력 문자열, 출력 포맷)
dt.datetime.strptime("2024-12-09 22:25", "%Y-%m-%d %H:%M")

# 결과: datetime.datetime(2024, 12, 9, 22, 25)

timedelta

  • 시간 계산을 도와준다
  1. 문자를 날짜로 변경
x = '2019-12-10'
date = datetime.strptime(x, '%Y-%m-%d')
  1. 날짜 연산
  • 40일 후 계산하기
date + dt.timedelta(days = 40)
# datetime.datetime(2020, 1, 19, 0, 0)
  • 6주 후 계산하기
date + dt.timedelta(weeks = 6)
# datetime.datetime(2020, 1, 21, 0, 0)

Dateutil 패키지

  • dateutil 패키지의 parse 함수를 쓰면 자동으로 형식 문자열을 찾아 datetime 클래스 객체 생성
from dateutil.parser import parse
parse('2024 12 9')
# 결과: datetime.datetime(2024, 12, 9, 0, 0)

parse("Dec 25, 2024 04:05:32 PM")
# 결과: datetime.datetime(2024, 12, 25, 16, 5, 32)
  • 다만 월과 일이 모두 12보다 작은 숫자일 때는 먼저 나오는 숫자를 월로 나중에 나오는 숫자를 일로 판단.
parse('9/8/2024')
# 결과: datetime.datetime(2024, 9, 8, 0, 0)

참고자료 - 2.15 파이썬에서 날짜와 시간 다루기

profile
To Dare is To Do

0개의 댓글