Data Science/데이터마이닝

파이썬에서 시간값 다루기 - Datetime, Timedelta

상어군 2022. 10. 7. 13:14
반응형

파이썬에서 datetime 라이브러리를 사용하여 시간값을 다룰수 있다.

 

1.현재 시간 출력하기 및 과거/미래 시간 계산하기

datetime 라이브러리로 현재시간을 받아올 수 있으며,

timedelta 라이브러리로 datetime 객체의 더하기, 빼기를 수행할 수 있다.

from datetime import datetime, timedelta

# 현재 시간
print('현재시간 : ',datetime.now())

# 하루 전 시간
delta = datetime.now() - timedelta(1)
print('하루전 시간 : ',delta)

# 이주일 전 시간
delta = datetime.now() - timedelta(14)
print('이주전 시간 : ',delta)

# 1년 전 시간
delta = datetime.now() - timedelta(365)
print('일년전 시간 : ',delta)

# timedelta() 객체에 곱하기
delta = datetime.now() - timedelta(1)*365
print('일년전 시간2 : ',delta)

# timedelta() 객체에 곱하기, 나누기는 적용 가능하며 더하기, 빼기는 불가능하다.

2. Datetime 객체 생성하기

2.1 Datetime 객체 생성

# 원하는 시간 객체 만들기

# 년,월,일 지정
stamp = datetime(2022, 10, 7)
print(stamp)
#=> 2022-10-07 00:00:00
print(type(stamp))
#=> <class 'datetime.datetime'>

# 년,월,일,시,분,초 지정
stamp = datetime(2022, 10, 7, 11, 46, 56)
print(stamp)
#=> 2022-10-07 11:46:56

2.2 문자열로부터 Datetime 정보 읽어와서 객체 만들기

# 문자열에서 읽어오기

# case1
value = '2022-10-7'
stamp = datetime.strptime(value, '%Y-%m-%d')
print(stamp)
#=> 2022-10-07 00:00:00
print(type(stamp))
#=> <class 'datetime.datetime'>

# case2
value = '2022/10/7 12:11:05'
stamp = datetime.strptime(value, '%Y/%m/%d %H:%M:%S')
print(stamp)
#=> 2022-10-07 12:11:05
print(type(stamp))
#=> <class 'datetime.datetime'>

Datetime을 인식하는 문자들은 아래와 같다.

%Y 네자리 연도값 (2022년 등)
%y 두자리 연도값 (22년 등)
%m 두자리 월값 (01 ~ 12 월)
%d 두자리 일값 (01 ~ 31 일)
%H 두자리 시간(00 ~ 23 시)
%I 두자리 시간(01 ~ 12 시)
%M 두자리 분(00 ~ 59 분)
%S 두자리 초(00 ~ 61), 61이 포함된 이유는 윤초(leap second) 때문이다
%w 요일정보(0 ~ 6), 0: 일요일, 1:월요일, ... , 6:토요일
%a 요얼정보(Sun, Mon, ... , Sat)
%A 요일정보(Sunday, Monday, ... , Saturday)
%p 오전 오후(AM,PM,am,pm)
%F %Y-%m-%d 의 약어(shortcut)
%D %Y/%m/%d 의 약어(shortcut)

2.3 Datetime 정보를 문자로 출력하기

strftime 메소드를 사용하여 2.2와 유사하게 사용 가능하다.

# 문자열로 출력하기
stamp = datetime(2022, 10, 7)
stamp.strftime('%Y-%m-%d')
#=> '2022-10-07'

 

반응형