Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 날짜 조작 모듈 완벽 가이드: datetime부터 dateutil까지

파이썬 날짜·시간 조작의 기본, datetime 모듈

파이썬에는 날짜와 시간을 다루기 위한 내장 모듈인 datetime이 기본으로 포함되어 있습니다. 이 모듈은 날짜 및 시간 값의 파싱(parsing), 포맷팅(formatting), 그리고 덧셈·뺄셈과 같은 산술 연산을 수행할 수 있는 다양한 함수와 클래스를 제공합니다.

시간 값은 time 클래스로 표현됩니다. 이 클래스는 시(hour), 분(minute), 초(second), 마이크로초(microsecond) 속성을 가지며, 필요하다면 타임존(시간대) 정보도 함께 담을 수 있습니다.

time 클래스 사용 예제

import datetime

t = datetime.time(1, 2, 3)
print(t)
print('hour :', t.hour)
print('minute :', t.minute)
print('second :', t.second)
print('microsecond :', t.microsecond)
print('tzinfo :', t.tzinfo)

실행 결과

01:02:03
hour : 1
minute : 2
second : 3
microsecond : 0
tzinfo : None

time 인스턴스는 오직 시간 값만 저장하며, 해당 시간과 연관된 날짜 정보는 포함하지 않는다는 점에 유의하세요.

date 클래스로 캘린더 날짜 다루기

달력상의 날짜 값은 date 클래스로 표현됩니다. 인스턴스는 연(year), 월(month), 일(day) 속성을 가지며, today() 클래스 메서드를 호출하면 오늘 날짜를 아주 간단하게 생성할 수 있습니다.

date 클래스 사용 예제

import datetime

today = datetime.date.today()
print(today)
print('ctime :', today.ctime())
print('tuple :', today.timetuple())
print('ordinal :', today.toordinal())
print('Year :', today.year)
print('Mon :', today.month)
print('Day :', today.day)

실행 결과

2017-09-07
ctime : Thu Sep 7 00:00:00 2017
tuple : time.struct_time(tm_year=2017, tm_mon=9, tm_mday=7, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=250, tm_isdst=-1)
ordinal : 736579
Year : 2017
Mon : 9
Day : 7

더 강력한 기능이 필요하다면? dateutil 라이브러리

datetime 모듈에 대한 자세한 내용은 PyMOTW 공식 문서에서 확인할 수 있습니다. 다만 datetime 모듈은 비교적 기본적인 기능만 제공하기 때문에, 좀 더 고급 작업에는 한계가 있습니다.

예를 들어 다음과 같은 기능이 필요하다면 dateutil(공식 문서) 라이브러리를 사용하는 것이 좋습니다.

  • "다음 달", "내년", "다음 주 월요일", "이번 달 마지막 주"처럼 상대적인 날짜 차이(relative delta) 계산
  • 두 개의 date 또는 datetime 객체 간의 상대적인 차이 계산
  • 복잡한 타임존 처리 등 확장된 날짜·시간 연산

정리하자면, 파이썬에서는 기본 제공되는 datetime 모듈로 대부분의 날짜·시간 작업을 처리하고, 더 복잡한 요구 사항이 생기면 dateutil로 기능을 확장하는 방식이 가장 효율적입니다.