-
시간 함수 datetimeComputer Language/Python 2020. 11. 29. 01:32728x90
Python에서 시간관련해서 굉장히 많이 쓰이는 함수입니다.
보통 성능측정할때는 그냥 time()을 쓰기도 하는데 실제 user data나 날짜 비교 등 날짜관련 조작을 위해서는 datetime이 자주 사용됩니다.
개인적으로 자주쓰지만 햇갈리는것들을 정리해봅니다
1. 문자열을 datetime으로 변환
import datetime str_date = "2020-11-29 13:54:22" trans_date = datetime.datetime.strptime(str_date, '%Y-%m-%D %H:%M:%S') type(trans_date) print(trans_date)
<class 'datetime.datetime'> 2020-11-29 13:54:22
만약 시간:분 이런 문자열이라도 format만 맞춰주면 입력 가능합니다.
import datetime str_date = "13:54" trans_date = datetime.datetime.strptime(str_date, '%H:%M') print(trans_date)
결과를 보면 시간, 분은 맞는다 다른값은 초기값으로 지정됩니다.
1900-01-01 13:54:00
2. 시간 비교 및 연산
datetime type 간의 연산 중 가장 많이 쓰이는게 차이값 구하기일 것입니다.
시작날짜와 종료날짜간의 차이를 구해서 결과를 day 혹은 시,분,초 이런식으로 얻고자 하는 경우가 많습니다.이런 경우, 아래와 같이 계산하면 됩니다.
import datetime start = '03:00' end = '03:30' stime = datetime.datetime.strptime(start, '%H:%M') etime = datetime.datetime.strptime(end, '%H:%M') if etime < stime: etime = etime + datetime.timedelta(days=1) print(stime) print(etime) interval = etime-stime length=int(interval.seconds/60) print(length)
1900-01-01 03:00:00 1900-01-01 03:30:00 30
interval에서 지원하는 attribute는 아래와 같습니다.
print(interval) print(interval.days) # 일별 print(interval.seconds) # 초 print(interval.seconds/60) # 분 print(interval.seconds/3600) # 시
3.# dateime 형에서 날짜 증감
datetime에서 날짜를 생성 후 하루 뒤, 두시간 뒤, 이렇게 조작하고 싶을때 사용합니다.import datetime str_date = '03:00' date = datetime.datetime.strptime(str_date, '%H:%M') print(date) date = date + datetime.timedelta(days=1) print(date)
1900-01-01 03:00:00 1900-01-02 03:00:00
datetime.timedelta() 함수에 key=value 형식으로 입력하는데 key 유형은 정해져 있습니다.
python document page 정의를 참고해서 사용하면 됩니다.timedelta객체는 두 날짜나 시간의 차이인 기간을 나타냅니다.classdatetime.timedelta(days=0,seconds=0,microseconds=0,milliseconds=0,minutes=0,hours=0,weeks=0)
모든 인자는 선택적이며 기본값은0입니다. 인자는 정수나 부동 소수점 수일 수 있으며, 양수나 음수일 수 있습니다.
days,seconds및microseconds만 내부적으로 저장됩니다. 인자는 이 단위로 변환됩니다:
- 밀리 초는 1000마이크로초로 변환됩니다.
- 분은 60초로 변환됩니다.
- 시간은 3600초로 변환됩니다.
- 주는 7일로 변환됩니다.
'Computer Language > Python' 카테고리의 다른 글
reduce 활용법 (0) 2020.12.02 map 활용법 (숫자 list를 문자열로 변환) (0) 2020.12.02 함수의 가변인자 *(Asterisk)의 의미 (0) 2020.11.28