English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 글에서는 time 모듈을 자세히 논의할 것입니다. time 모듈에서 정의된 다양한 시간 관련 함수를 예제를 통해 학습할 것입니다.
Python에 naming time이라는 시간 관련 작업을 처리하는 모듈이 있습니다. 모듈에서 정의된 함수를 사용하려면, 먼저 모듈을 가져와야 합니다. 그래서 이렇게 합니다:
import time
이곳에는 일반적인 시간 관련 함수가 있습니다.
time() 함수는 epoch 이후로 지나간 초를 반환합니다.
Unix 시스템에서 January 1, 1970, 00:00:00에서UTC은 epoch(그곳에서 시간이 시작됩니다).
import time seconds = time.time() print("Seconds since epoch =", seconds)
time.ctime()는 epoch 이후로 지나간 초를 매개변수로 하여 로컬 시간을 나타내는 문자열을 반환합니다.
import time # epoch 이후로 지나간 초 seconds = 1545925769.9618232 local_time = time.ctime(seconds) print("Local time:", local_time)
이 프로그램을 실행하면, 출력은 다음과 같이 됩니다:
Local time: Thu Dec 27 15:49:29 2018
sleep() 함수는 주어진 초 동안 현재 스레드의 실행을 일시 중지(지연)합니다.
import time print("즉시 출력됩니다.") time.sleep(2.4) print("이것은2.4秒 후에 출력된. ")
더 많은 정보를 얻으려면 다음을 방문하세요:Python sleep()。
다른 시간 관련 함수에 대해 논의하기 전에, time.struct_time 클래스를 간단히 탐구해 보겠습니다.
time 모듈의 몇 가지 함수(예: gmtime(), asctime() 등)는 time.struct_time 객체를 매개변수로 하거나 반환합니다.
이는 time.struct_time 객체의 인스턴스입니다。
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=6, tm_min=35, tm_sec=17, tm_wday=3, tm_yday=361, tm_isdst=0)
인덱스 | 속성 | 속성 값 |
---|---|---|
0 | tm_year | 0000,....,2018,...,9999 |
1 | tm_mon | 1,2,...,12 |
2 | tm_mday | 1,2,...,31 |
3 | tm_hour | 0,1,...,23 |
4 | tm_min | 0,1,...,59 |
5 | tm_sec | 0,1,...,61 |
6 | tm_wday | 0, 1, ... , 6; 월요일은 0 |
7 | tm_yday | 1,2,...,366 |
8 | tm_isdst | 0、1또는-1 |
time.struct_time 객체의 값을 (요소) 인덱스와 속성으로 접근할 수 있습니다.
localtime() 함수는 epoch 이후로 지나간 초를 매개변수로 하여localtimereturn struct_time。
import time result = time.localtime(1545925769) print("result:", result) print("\nyear:", result.tm_year) print("tm_hour:", result.tm_hour)
프로그램을 실행할 때, 출력은 다음과 같습니다:
result: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0) year: 2018 tm_hour: 15
localtime()에 매개변수나 None를 전달하지 않으면 time()의 반환 값을 사용합니다。
이 gmtime() 함수는 epoch부터 경과한 초수를 매개변수로 전달하여 struct_time로 변환합니다.UTCreturn.
import time result = time.gmtime(1545925769) print("result:", result) print("\nyear:", result.tm_year) print("tm_hour:", result.tm_hour)
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
result = time.struct_time(tm_year=2018, tm_mon=12, tm_mday=28, tm_hour=8, tm_min=44, tm_sec=4, tm_wday=4, tm_yday=362, tm_isdst=0) year = 2018 tm_hour = 8
gmtime()에 매개변수나 None를 전달하지 않으면 time()의 반환 값을 사용합니다。
mktime() 함수는 struct_time(또는 포함하는9요소의 튜플은 struct_time)을 매개변수로 전달하여 지역 시간의 기원부터 경과한 초수를 반환합니다. 기본적으로 localtime()의 역함수입니다.
import time t = (2018, 12, 28, 8, 44, 4, 4, 362, 0) local_time = time.mktime(t) print("Local time:", local_time)
아래의 예제는 mktime()와 localtime()의 관계를 보여줍니다。
import time seconds = 1545925769 # returns struct_time t = time.localtime(seconds) print("t1: ", t) # returns seconds from struct_time s = time.mktime(t) print("\s:", seconds)
프로그램을 실행할 때, 출력은 다음과 같습니다:
t1: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0) s: 1545925769.0
이 asctime() 함수는 struct_time(또는 포함하는9요소의 튜플은 struct_time)을 매개변수로 전달하여 그 텍스트를 반환합니다. 예제를 보면 다음과 같습니다:
import time t = (2018, 12, 28, 8, 44, 4, 4, 362, 0) result = time.asctime(t) print("Result:", result)
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
결과: Fri Dec 28 08:44:04 2018
strftime() 함수는 struct_time(또는 그에 해당하는 튜플)을 인자로 받아 사용하는 형식 코드에 따라 문자열을 반환합니다. 예를 들어서,
import time named_tuple = time.localtime() # get struct_time time_string = time.strftime("%m/%d/%Y, %H:%M:%S", named_tuple) print(time_string)
프로그램을 실행할 때, 출력은 다음과 같습니다:
12/28/2018, 09:47:41
여기 %Y, %m, %d, %H 등은 형식 코드입니다。
%Y -년[0001,...,2018,2019,...,9999]
%m -월[01,02,...,11,12]
%d -일[01,02,...,30,31]
%H -시간[00,01,...,22,23
%M -분[00,01,...,58,59]
%S -초[00,01,...,58,61]
더 많은 정보를 얻으려면 다음을 방문하세요:time.strftime()。
strptime() 함수는 시간 문자열을 해석하고 struct_time를 반환합니다.
import time time_string = "21 June, 2018" result = time.strptime(time_string, "%d %B, %Y") print(result)
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=172, tm_isdst=-1)