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'
반응형