Python 3.x 中如何使用time模块进行时间处理
时间的表示
时间是一种比较特殊的数据类型,因为它不是数值,但它需要与数值进行处理。在 Python 3.x 中,time 模块是处理时间和日期的标准库之一。time 模块提供了多种函数来处理时间,同时还提供了很多常量来表示日期时间的各个方面,例如日期格式、周几等。
在 Python 中,时间可以表示为整数或元组形式。元组中包含了年、月、日、小时、分钟、秒、星期几和一年中第几天这些信息,例如:
import time
print(time.localtime())
输出结果:
time.struct_time(tm_year=2021, tm_mon=1, tm_mday=28, tm_hour=15,
tm_min=18, tm_sec=37, tm_wday=3, tm_yday=28, tm_isdst=0)
可见,time.localtime() 以元组形式返回了当前的具体时间信息,其中 tm_wday 表示星期几,0代表星期一,1代表星期二,以此类推,tm_yday 表示一年中的第几天,从 1 开始计数。tm_isdst 表示是否为夏令时 0 表示不是,1 表示是,-1 表示未知。
时间的格式化
对于日期和时间的处理,将其转化为字符串是非常常见的需求,这就要用到时间格式化。
time 对象有自己的二进制表示,也有字符串表示。字符串表示有两种方式:
1. 可以用 % 运算符来格式化时间
2. 可以用 strftime() 来生成更多格式的时间
第一种方法比较常用,它用 %d、%m、%Y 等符号代表日期、月份、年等等。第二种方法比较强大,它可以生成更加丰富和更具可读性的字符串格式。
下面是一个简单的示例,展示了如何将时间格式化输出:
import time
t = time.localtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",t))
输出结果:
2021-01-28 15:18:37
为了更好地说明时间格式化的使用方法,下表列出了常用的格式化符号:
| 符号 | 说明 |
| ------ | ------ |
| %d | 日期,如01 |
| %m | 月份,如07 |
| %Y | 年,如2019 |
| %H | 24小时制小时数,如18 |
| %M | 分钟数,如32 |
| %S | 秒数,如08 |
| %a | 简写星期几,如Mon |
| %A | 全写星期几,如Monday |
| %b | 简写月份名,如Jan |
| %B | 全写月份名,如January |
| %c | 适用于本地设置的日期和时间字符串 |
| %j | 一年中的第几天,如001 |
| %p | 适用于本地设置的 AM 或 PM |
| %U | 一年中的第几周,以星期日为第一天,0-53 |
| %w | 一周中的第几天,0代表星期天,1代表星期一,以此类推 |
| %W | 一年中的第几周,以星期一为第一天,0-53 |
| %x | 适用于本地设置的日期字符串 |
| %X | 适用于本地设置的时间字符串 |
| %Z | 时区名称 |
| %% | % 字符 |
时间处理
除了能够获取当前时间和格式化时间,time 模块还可以用于时间处理。
1. 时间戳
时间戳是一个浮点数,返回自纪元(1970年1月1日午夜UTC,也就是格林威治时间)以来的秒数。时间戳是处理时间的一种标准方式,Python提供了多种函数来处理时间戳。
示例代码:
import time
print(time.time())
输出结果:
1611847569.0347278
2. 延迟
time.sleep()函数可以暂停程序运行。示例代码:
import time
print("打印前")
time.sleep(2.5)
print("打印后")
输出结果:
打印前
#停顿2.5s
打印后
3. 时间计算
time 模块中提供了几个函数来计算时间,如 time.clock() 和 time.process_time()
import time
print("clock()所需时间: ", time.clock()) # 前一个与后一个time间隔了多少秒
print("process_time()所需时间: ", time.process_time()) # 返回本进程运行的CPU时间
输出结果:
clock()所需时间: 5.653035
process_time()所需时间: 213.28125
结语
Python 的 time 模块虽然在使用过程中存在一定的复杂度,但是掌握它的时间处理功能会对代码编写和调试等方面非常有帮助。 以上便是 Python 3.x 中如何使用time模块进行时间处理的相关内容,希望对大家有所帮助。