본문 바로가기
12.날짜와 시간

파이썬 시간/날짜 모듈 (datetime 모듈, date클래스의 모든 메소드 설명)

by 만다린망고 2020. 11. 23.
반응형

파이썬 시간/날짜 모듈 (datetime 모듈, date클래스의 모든 메소드 설명)


datetime 모듈은 파이썬에서 시간/날짜 관련 클래스와 함수를 제공하는 모듈입니다. 이번 글에서는 datatime 모듈 안에 있는 date클래스를 공부해봅시다. 


datatime 모듈 구조 -> data 클래스 구조 의 순서로 살펴봅시다. 아래는 datatime 모듈의 구조입니다. 


>>> import datetime

>>> dir(datetime) 

['MAXYEAR',

 'MINYEAR',

 '__builtins__',

 '__cached__',

 '__doc__',

 '__file__',

 '__loader__',

 '__name__',

 '__package__',

 '__spec__',

 'date',

 'datetime',

 'datetime_CAPI',

 'sys',

 'time',

 'timedelta',

 'timezone',

 'tzinfo']


date 클래스가 보입니다. date클래스의 입력형식은 아래와 같습니다.


datetime.date(year, month, day)


아래는 인스턴스 생성 예시입니다. 


>>> mdt=datetime.date(2020,9,13)

>>> mdt

datetime.date(2020, 9, 13)


이 클래스에 어떤 메소드를 사용할수 있는지 알아봅시다. 아래는 date 클래스의 구조입니다.


>>> dir(datetime.date)

['__add__',

 '__class__',

 '__delattr__',

 '__dir__',

 '__doc__',

 '__eq__',

 '__format__',

 '__ge__',

 '__getattribute__',

 '__gt__',

 '__hash__',

 '__init__',

 '__init_subclass__',

 '__le__',

 '__lt__',

 '__ne__',

 '__new__',

 '__radd__',

 '__reduce__',

 '__reduce_ex__',

 '__repr__',

 '__rsub__',

 '__setattr__',

 '__sizeof__',

 '__str__',

 '__sub__',

 '__subclasshook__',

 'ctime',

 'day',

 'fromisoformat',

 'fromordinal',

 'fromtimestamp',

 'isocalendar',

 'isoformat',

 'isoweekday',

 'max',

 'min',

 'month',

 'replace',

 'resolution',

 'strftime',

 'timetuple',

 'today',

 'toordinal',

 'weekday',

 'year']


위 메소드들을 하나씩 알아봅시다. 


1) ctime


아래와 같은 형태로 결과를 반환합니다. 


>>> mdt.ctime()

'Wed Sep  9 00:00:00 2020'



2) day


일(day)를 반환합니다. 


>>> mdt.day

13



3) fromisoformat


YYYY-MM-DD 형식으로 date_string을 입력하면, 해당 인스턴스를 반환합니다. 


>>> datetime.date.fromisoformat('2020-11-23')

datetime.date(2020, 11, 23)



4) fromtimestamp


유닉스 시간을 연/월/일 시간으로 바꿔줍니다. 유닉스시간은 time.time()으로 가져옵니다. 


>>> datetime.date.fromtimestamp(time.time())

datetime.date(2020, 11, 23)



5) isocalendar


해당 날짜의 연도, week, weekday를 알려줍니다. (유럽은 우리처럼 '11월 셋째주' 이런식이 아니라 '48번째주' 이런식으로 소통하더라구요.)


>>> datetime.date(2020,11,23).isocalendar()

(2020, 48, 1)



6) isoformat


해당 날짜를 ISO 8601형식의 날짜로 반환합니다. 


>>> datetime.date(2020,11,23).isoformat()

'2020-11-23'



7) isoweekday


요일을 숫자로 반홥합니다. 월요일이 1, 일요일이 7입니다. 


>>> datetime.date(2020,11,23).isoweekday()

1

>>> datetime.date(2020,11,22).isoweekday()

7



8) max


표현가능한 최대 날짜를 반환합니다. 


>>> datetime.date.max

datetime.date(9999, 12, 31)



9) min


표현가능한 최소 날짜를 반환합니다. 


>>> datetime.date.min

datetime.date(1, 1, 1)



10) month


월을 반환합니다.


>>> datetime.date(2020,11,22).month

11



11) replace


연/월/일 을 입력값으로 수정하여 반환합니다. 


>>> datetime.date(2020,11,22).replace(year=2012)

datetime.date(2012, 11, 22)


>>> datetime.date(2020,11,22).replace(year=2011,month=7)

datetime.date(2011, 7, 22)


>>> datetime.date(2020,11,22).replace(day=13)

datetime.date(2020, 11, 13)



12) resolution


입력 형식 하에서 가장 작은 차이를 반환합니다. 연/월/일 이라면 하루(1day)가 가장 작은 차이입니다. 


>>> datetime.date(2020,11,14).resolution

datetime.timedelta(days=1)



13) strftime


입력된 포멧에 맞게 날짜를 반환합니다.


>>> datetime.date(2020,11,14).strftime('%Y')

'2020'



14) timetuple


struct_time 을 반환합니다. time모듈의 localtime 메소드와 같은 역할입니다. 


>>> datetime.date(2020,11,14).timetuple()

time.struct_time(tm_year=2020, tm_mon=11, tm_mday=14, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=319, tm_isdst=-1)




15) today


오늘의 연/월/일을 반환합니다. 


>>> datetime.date.today()

datetime.date(2020, 11, 23)



16) toordinal


그레고리력 서수를 반환합니다. 


>>> datetime.date(2020,11,14).toordinal()

737743



17) weekday


요일을 숫자로 반환합니다. 월요일이 0, 일요일이 6입니다. 


>>> datetime.date(2020,11,22).weekday()

6

>>> datetime.date(2020,11,23).weekday()

0



18) year


입력된 연도를 반환합니다. 


>>> datetime.date(2020,11,23).year

2020


반응형

댓글