# Python `time`模块 > 原文: [https://www.programiz.com/python-programming/time](https://www.programiz.com/python-programming/time) #### 在本文中,我们将详细探讨时间模块。 通过示例,我们将学习使用在时间模块中定义的与时间相关的不同功能。 Python 有一个名为`time`的模块来处理与时间有关的任务。 要使用模块中定义的功能,我们需要首先导入模块。 这是如何做: ```py import time ``` * * * 这是常用的时间相关功能。 ### Python `time.time()` `time()`函数返回自纪元以来经过的秒数。 对于 Unix 系统,在 **UTC** 处的`January 1, 1970, 00:00:00`是时代(时间开始的点)。 ```py import time seconds = time.time() print("Seconds since epoch =", seconds) ``` * * * ### Python `time.ctime()` `time.ctime()`函数从纪元起经过了几秒钟,并将其作为代表本地时间的字符串。 ```py import time # seconds passed since epoch seconds = 1545925769.9618232 local_time = time.ctime(seconds) print("Local time:", local_time) ``` 如果运行该程序,输出将类似于: ```py Local time: Thu Dec 27 15:49:29 2018 ``` * * * ### Python `time.sleep()` `sleep()`函数在给定的秒数内暂停(延迟)当前线程的执行。 ```py import time print("This is printed immediately.") time.sleep(2.4) print("This is printed after 2.4 seconds.") ``` 要了解更多信息,请访问: [Python `sleep()`](/python-programming/time/sleep)。 * * * 在讨论其他与时间相关的函数之前,让我们简要探讨`time.struct_time`类。 * * * ## `time.struct_time`类别 `time`模块中的某些功能,例如`gmtime()`,`asctime()`等,都可以将`time.struct_time`对象作为参数或将其返回。 这是`time.struct_time`对象的示例。 ```py 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`对象的值(元素)。 * * * ### Python `time.localtime()` `localtime()`函数将自纪元以来经过的秒数作为参数,并在**当地时间**中返回`struct_time`。 ```py import time result = time.localtime(1545925769) print("result:", result) print("\nyear:", result.tm_year) print("tm_hour:", result.tm_hour) ``` 当您运行程序时,输出将类似于: ```py 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 ``` 如果没有参数或`None`传递给`localtime()`,则使用`time()`返回的值。 * * * ### Python `time.gmtime()` `gmtime()`函数将自纪元以来经过的秒数作为参数,并在 **UTC** 中返回`struct_time`。 ```py import time result = time.gmtime(1545925769) print("result:", result) print("\nyear:", result.tm_year) print("tm_hour:", result.tm_hour) ``` 运行该程序时,输出为: ```py 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 ``` 如果没有参数或`None`传递给`gmtime()`,则使用`time()`返回的值。 * * * ### Python `time.mktime()` `mktime()`函数将`struct_time`(或包含 9 个元素的元组,与`struct_time`对应的元组)作为参数,并返回自当地时间的纪元以来经过的秒数。 基本上,它是`localtime()`的反函数。 ```py import time t = (2018, 12, 28, 8, 44, 4, 4, 362, 0) local_time = time.mktime(t) print("Local time:", local_time) ``` * * * 下面的示例显示`mktime()`和`localtime()`之间的关系。 ```py 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) ``` When you run the program, the output will be something like: ```py 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 ``` * * * ### Python `time.asctime()` `asctime()`函数将`struct_time`(或包含 9 个与`struct_time`相对应的元素的元组)作为参数,并返回表示它的字符串。 这是一个例子: ```py import time t = (2018, 12, 28, 8, 44, 4, 4, 362, 0) result = time.asctime(t) print("Result:", result) ``` 当你运行程序时,输出将是: ```py Result: Fri Dec 28 08:44:04 2018 ``` * * * ### Python `time.strftime()` `strftime()`函数将`struct_time`(或与其对应的元组)作为参数,并根据所使用的格式代码返回表示它的字符串。 例如, ```py import time named_tuple = time.localtime() # get struct_time time_string = time.strftime("%m/%d/%Y, %H:%M:%S", named_tuple) print(time_string) ``` When you run the program, the output will be something like: ```py 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, 59` 要了解更多信息,请访问: [`time.strftime()`](https://docs.python.org/3/library/time.html#time.strftime)。 * * * ### Python `time.strptime()` `strptime()`函数解析表示时间的字符串,然后返回`struct_time`。 ```py import time time_string = "21 June, 2018" result = time.strptime(time_string, "%d %B, %Y") print(result) ``` 当你运行程序时,输出将是: ```py 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) ```