플그래밍/파이써언

[파이썬] datetime 모듈 기초

훗티v 2022. 6. 8. 10:36
728x90
반응형

파이썬에서 날짜와 시간을 처리하는 것은 여간 번거로운 일이 아닐 수 없는데요. 고맙게도, 파이썬 datetime 모듈을 사용하면 좀 더 간편하게 해당 문제를 해결할 수 있습니다.

 

직접 코딩을 시작하기전에 datetime 모듈에서 사용되는 5가지 주요 객체 클래스는 다음과 같습니다.

 

datetime 시간과 날짜(월, 일, 연도, 시간, 초, 마이크로초)
date 날짜 (월, 일, 년)
time 시간 (시간, 분, 초, 마이크로초)
time delta 소요 시간
tzinfo 시간대

 

일단 위의 5가지 객체 클래스가 있다는 사실만 숙지하고 넘어가보도록 할께요.

 

다음 코드를 통해 현재 시간을 추출할 수 있고 해당 객채는 datetime 클래스를 갖게 됩니다.

# 모듈 임포트
from datetime import datetime

# 현재 시간
dt_obj = datetime.now() # 현재 시간을 알려줍니다. datetime.now()
print(dt_obj)
print(f'{type(dt_obj)}')

 

현재 시간은 2022년 6월 8일 오전 8시 7분 13.163111초 입니다. (datetime 클래스)

 

저희가 일반적으로 쓰는 시간 포맷과 다른걸 볼 수 있는데요, 위의 객채로부터 필요한 부분만 추출하는 과정이 필요해보입니다. 여기서 사용되는 메소드는 두 가지 입니다.

 

strptime() 문자열 > datetime 객채

strftime() datetime 객채 > 문자열

 

시간 정보를 포함하는 문자열을 datetime 객체로, 반대로 객체를 문자열로도 변환할 수 있습니다.

# 모듈 임포트
from datetime import datetime

# 시간 정보를 포함하는 문자열
date_string = '2022-06-08'

# st문자열의 형식에 맞게 객체를 만들어줍니다.
date_object = datetime.strptime(date_string, "%Y-%m-%d")

print(date_object)
print(f'{type(date_object)}')

 

문자열에 담긴 년/월/일 정보가 datetime 객체로 변환된 것을 볼 수 있습니다.

(포맷 설정이 정확하지 않으면 오류가 발생 합니다.)

2022  -   06   -   08

 %Y   %m  %d

결과값에 00:00:00이 포함된 이유는 날짜와 시간을 값으로 갖는 datetime 객체이기 때문입니다.

시간이 설정되어 있지 않는 위와 같은 경우 시간값으로 00:00:00이 자동으로 추가됩니다.

 

datetime 객체 date_object에서 원하는 값만 추출 할 수도 있습니다.

# 월 값 추출
print(f'{date_object.month}월') 

# 년도 값 추출
print(f'{date_object.year}년')

 

 

 

 

 

 

 

반응형