time 모듈은 프로그래밍 과정에서의 실행 속도를 측정하거나, 현재 날짜를 출력 하는 등 날짜와, 시간을 처리할 때 활용된다.
현재의 시간을 1970년 1월 1일 00시 00분 00초를 기준(UTCUniversal Time Coordinated,국제 표준 시간)으로 지난 시간을 초로 나타낸다.
import time
print(time.time())
출력 결과:
1643506114.3861022
이 함수를 이용하여 프로그램의 진행 시간을 확인할 수 있다.
아래의 코드는 피보나치 수열의 프로그램이 얼마나 시간이 걸리는지를 확인한다.
import time
def fib(n) : # 피보나치 수열 출력
a, b = 0, 1
while b <n:
print(b, end=' ‘)
a, b = b, a+b
print()
start = time.time()
fib(1000)
end = time.time()
print(end-start)
출력 결과:
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
0.0 # 컴퓨터에 따라 다르게 나타난다.
localtime(sec)은 입력된 sec을 현지(한국)시간을 기준으로 변환해서 출력해준다.
만일 time이 공백이라면 time()이 디폴트 값으로 들어가 현재의 시간을 보여준다.
import time
print(time.localtime())
print(time.localtime(time.time()))
print(time.localtime(100))
출력 결과:
time.struct_time(tm_year=2022, tm_mon=1, tm_mday=30, tm_hour=10, tm_min=31, tm_sec=12, tm_wday=6, tm_yday=30, tm_isdst=0)
time.struct_time(tm_year=2022, tm_mon=1, tm_mday=30, tm_hour=10, tm_min=31, tm_sec=12, tm_wday=6, tm_yday=30, tm_isdst=0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=9, tm_min=1, tm_sec=40, tm_wday=3, tm_yday=1, tm_isdst=0)
위의 출력 결과에서 tm-wday은 월요일(0)에서 일요일(6)을 나타내준다. tm-yday는 1월 1일에서 경과한 일수를, tm-isdest는 서머타임의 여부(0 또는 -1)를 나타내준다.
localtime(sec)이 현지를 기준으로 했다면, gmtime(sec)은 초를 UTC를 기준으로 나타내준다.
import time
print(time.localtime(time.time()))
print(time.gmtime(time.time()))
출력 결과
time.struct_time(tm_year=2022, tm_mon=1, tm_mday=30, tm_hour=10, tm_min=36, tm_sec=1, tm_wday=6, tm_yday=30, tm_isdst=0)
time.struct_time(tm_year=2022, tm_mon=1, tm_mday=30, tm_hour=1, tm_min=36, tm_sec=1, tm_wday=6, tm_yday=30, tm_isdst=0)
앞의 gmtime(), localtime()으로 생성된 객체를 strftime()을 이용하여 문자열로 보기좋게 정리할 수 있다.
import time
print(time.localtime(time.time()))
time_now = time.strftime('%Y-%m-%d', time.localtime(time.time()))
print(time_now)
출력 결과:
time.struct_time(tm_year=2022, tm_mon=1, tm_mday=30, tm_hour=10, tm_min=38, tm_sec=41, tm_wday=6, tm_yday=30, tm_isdst=0)
2022-01-30
아래는 날짜, 시간의 표기 코드표이다.
코드 | 설명 | 예 |
---|---|---|
%a | 요일 줄임말 | Sun, Mon, ..., Sat |
%A | 요일 | Sunday, Monday, ..., Saturday |
%w | 요일을 숫자로 표시, 월요일(0)~일요일(6) | 0, 1, ..., 6 |
%d | 일 | 01, 02, ..., 31 |
%b | 월의 줄임말 | Jan, Feb, ..., Dec |
%B | 월 | January, February, ..., December |
%m | 숫자 월 | 01, 02, ..., 12 |
%y | 두 자릿수 연도 | 01, 02, ..., 99 |
%Y | 네 자릿수 연도 | 0001, 0002, ..., 9999 |
%H | 시간(24시간) | 00, 01, ..., 23 |
%I | 시간(12시간) | 000, 01, ..., 12 |
%p | AM, PM | AM, PM |
%M | 분 | 00, 01, ..., 59 |
%S | 초 | 00, 01, ..., 59 |
%Z | 시간대 | 대한민국 표준시 |
%j | 1월 1일부터 경과한 일수 | 001, 002, ..., 366 |
%U | 1년중 주차, 월요일이 한 주의 시작으로 | 00, 01, ..., 53 |
%W | 1년중 주차, 월요일이 한 주의 시작으로 | 00, 01, ..., 53 |
%c | 날짜, 요일, 시간을 출력, 현재 시간대 기준 | Sat May 19 11:14:27 2018 |
%x | 날짜를 출력, 현재 시간대 기준 | 05/19/18 |
%X | 시간을 출력, 현재 시간대 기준 | '11:44:22' |
asctime() 함수는 현재 날짜와 시간을 문자열 형태로 표시한다.
import time
print(time.asctime())
출력결과
Thu May 13 10:16:58 2021
sleep(sec)는 입력된 초만큼 스레드를 중지시킨다. 여기서 스레드는 프로그램의 진행의 흐름을 말한다.
import time
print(time.asctime())
time.sleep(5)
# 5초가 지나고 난 후 hello가 출력된다.
print('hello')
출력 결과:
Sun Jan 30 10:53:01 2022
hello