이것저것 기록

[python] datetime 모듈로 시간 처리 및 계산하기 본문

코린이/코딩 기초 & 알고리즘 공부

[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을 사용해 만들어야 해서 더미를 넣어줬다. 

 

days_array
times_array

 

 

 

Comments