코린이/코딩 기초 & 알고리즘 공부
[python] datetime 모듈로 시간 처리 및 계산하기
anweh
2020. 10. 17. 19:56
자료 처리를 하다보면 시간을 다뤄야하는 경우가 있다.
뭐 러닝 타임이 얼마나 되는지 계산할때도 시간을 다뤄야 하고.
그래서 파이썬의 날짜/시간 모듈인 datetime 모듈을 포스팅 하려고 한다.
import datetime, time
import numpy as np
오늘 사용할 라이브러리들~
1. 오늘 날짜
# 오늘
today = datetime.date.today()
today.isoformat()
2. 현재 시각
# 현재 시각
now = datetime.datetime.now()
print(now)
# 현재 시분초만
nowTime = now.strftime('%H:%M:%S')
print(nowTime) # 12:11:32
# 오늘 년월일시 모두
nowDatetime = now.strftime('%Y-%m-%d %H:%M:%S')
print(nowDatetime)
3. 사용자 지정 날짜 및 시간 설정
# 사용자 지정 날짜 및 시간 설정
dd = datetime.date(2020, 4, 25)
tt = datetime.time(12, 12, 30)
dt = datetime.datetime.combine(dd, tt)
print(dt)
4. datetime 모듈로 날짜 및 시간 연산하기
# 연산
## 1. 하루씩 더하기
start_day = datetime.date(2020, 4, 25)
duration = 30
days = []
for i in range(duration):
next_day = start_day + datetime.timedelta(days=1)
days.append(next_day)
start_day = next_day
days_array = np.array(days)
## 2. 일초씩 더하기
start_time = datetime.datetime(100, 1, 1, 10, 41, 6) #100, 1, and 1 are dummies
duration = 100
times = []
for i in range(duration):
next_time = start_time + datetime.timedelta(seconds=1)
times.append(next_time)
start_time = next_time
times_array = np.array(times)
start_time에 100, 1, 1 같은 더미를 넣은 이유는 datetime.timedelta()를 사용하여 연산할 때 datetime.time과는 연산이 안되기 때문이다.
일초씩 더하는 데에 년월일이 필요없기는 하지만 datetime.timedelta()를 사용하여 연산하려면 start_time을 datetime.datetime을 사용해 만들어야 해서 더미를 넣어줬다.