time 모듈
time모듈은 python 내에서 시간을 다룰때 유용한 모듈이다.
입력한 숫자와 문자를 날짜 형식으로 바꿀 수 있고 time을 이용해 시간과 날짜를 구할 수 있다.
struct_time 이해하기
time모듈을 사용해 시간을 검색하면 아래와 같이 출력된다.
time.struct_time(tm_year=2018(년도), tm_mon=12(달), tm_mday=13(일), tm_hour=17(시간),
tm_min=50(분), tm_sec=48(초), tm_wday=3(요일), tm_yday=347(이번년도 경과 일), tm_isdst=0(썸머타임))
time 모듈 매서드
1. time.time()
1970년 1월 1일 0시 0분 0초를 기준으로 현재까지를 초단위로 리턴한다.
2. time.localtime('time.time()의 초')
time()에 의해서 반환되는 실수값을 이용해서 struct_time 구조로 바꿔 주는 함수이다.
time.localtime() 으로 none값을 입력하면 현재 시간을 알려준다.
secs은 time.time()에 의한 초단위 시간을 struct_time 구조로 바꾸어 준다.
3. time.asctime(time.localtime(time.time()))
localtime()에 의해 변환된 struct_time구조를 알아보기 쉬운 구조로 변환해준다.
※time.ctime()은 현재 시간을 time.asctime과 같은 구조로 나오게한다.
4. time.strftime('포멧코드',struct_time구조)
struct_time구조를 포멧에 맡게 출력한다.
strtime은 struct_time으로 아래 표를 참조해야한다.
%Y Year with century as a decimal number. 년 리턴
%m Month as a decimal number [01,12]. 달 리턴
%d Day of the month as a decimal number [01,31]. 일 리턴
%H Hour (24-hour clock) as a decimal number [00,23]. 시간을 24시간으로 리턴
%M Minute as a decimal number [00,59]. 분 리턴
%S Second as a decimal number [00,61]. 초 리턴
%z Time zone offset from UTC. 현재 위치 시간과 UTC차
※UTC : 협정세계시
%a Locale's abbreviated weekday name. 요일 리턴(Mon , Thu , Sun)
%A Locale's full weekday name. 요일 풀네임 리턴(Monday)
%b Locale's abbreviated month name. 달 리턴(Jan)
%B Locale's full month name. 달 풀네임 리턴(January)
%c Locale's appropriate date and time representation. 날짜와 시간 리턴
%I Hour (12-hour clock) as a decimal number [01,12]. 시간을 12시간으로 리턴
%p Locale's equivalent of either AM or PM. 오전 오후 리턴
예) 2018-12-12 -> %Y-%m-%d
2018은 년도%Y / 12는 달%m /12는 일%d 로 strct_time으로 만든다.
5. time.sleep('시간')
코드를 실행시 sleep을 준다. (입력한 시간만큼 멈췄다가 실행된다.)
※Tip
프로그램 실행 시간 계산하기
datetime 모듈을 사용해 프로그램 실행 시간을 계산할 수 있다.
from datetime import datetime
start = datetime.now()
#현재 시간을 start에 저장한다.
print('1에서 백만까지 더합니다.')
ret=0
for i in range(1,100000):
ret +=i
print('1에서 백만까지 더한 결과:%d'%ret)
end=datetime.now()
#현재 시간을 end에 저장한다.
elapsed = end-start
#시작시간과 끝나는 시간의 차는 경과 시간이다.(elapsed의 자료형은 timedelta이다.)
print('총 계산 시간:%d'%elapsed)
elapsed_ms=int(elapsed.total_seconds()*1000)
print('총 계산 시간:%d'%elapsed_ms)