【干货】Python:time库的用法
- 1. time库概述
- 2. time库的运用
- 2.1 时间处理
- 2.1.1 time()
- 2.1.2 gmtime()
- 2.1.3 localtime()
- 2.1.4 ctime()
- 2.2 时间格式化
- 2.2.1 mktime()
- 2.2.2 strftime()
- 2.2.3 strptime()
- 2.3 计时
- 3. 习题
- 4. 本文代码编译环境及版本
- 5. 更新日志
- 6. 参考
1. time库概述
time库是Python提供的处理时间的标准库。time库提供系统级精确计时器的计时功能,可以用来分析程序性能,也可以让程序暂停运行时间。
time库的功能主要分为3个方面:时间处理、时间格式化和计时。
2. time库的运用
time库常用功能与函数如下:
2.1 时间处理
2.1.1 time()
使用time()
获取当前 时间戳
>>> from time import *
>>> time()
1675835039.6415212
2.1.2 gmtime()
使用gmtime(secs)
获取时间戳secs
对应的struct_time
对象
>>> from time import *
>>> gmtime()
time.struct_time(tm_year=2023, tm_mon=2, tm_mday=8, tm_hour=5, tm_min=44, tm_sec=25, tm_wday=2, tm_yday=39, tm_isdst=0)
struct_time
对象的元素构成如下表
下标 | 属性 | 值 |
---|---|---|
0 | tm_year | 年份,整数 |
1 | tm_mon | 月份 [1,12] |
2 | tm_mday | 日期 [1,31] |
3 | tm_hour | 小时 [0,23] |
4 | tm_min | 分钟 [0,59] |
5 | tm_sec | 秒 [0,61] |
6 | tm_wday | 星期 [0,6] (0 表示星期一) |
7 | tm_yday | 该年第几天 [1,366] |
8 | tm_isdst | 是否夏令时,0否,1是,-1未知 |
2.1.3 localtime()
使用localtime(secs)
获取时间戳secs
对应的本地时间的struct_time
对象
>>> from time import *
>>> localtime(222222221.4321)
time.struct_time(tm_year=1977, tm_mon=1, tm_mday=16, tm_hour=8, tm_min=23, tm_sec=41, tm_wday=6, tm_yday=16, tm_isdst=0)
>>> localtime()
time.struct_time(tm_year=2023, tm_mon=2, tm_mday=8, tm_hour=14, tm_min=22, tm_sec=28, tm_wday=2, tm_yday=39, tm_isdst=0)
2.1.4 ctime()
使用ctime(secs)
获取当前时间戳secs
对应的易读字符串表示,内部ui调用localtime()
函数输出当地时间
>>> from time import *
>>> ctime()
'Wed Feb 8 13:48:07 2023'
2.2 时间格式化
2.2.1 mktime()
使用mktime(t)
将struct_time
对象t
转换为时间戳,注意t
代表当地时间。
>>> from time import *
>>> t = localtime()
>>> t
time.struct_time(tm_year=2023, tm_mon=2, tm_mday=8, tm_hour=13, tm_min=52, tm_sec=9, tm_wday=2, tm_yday=39, tm_isdst=0)
>>> mktime(t)
1675835529.0
>>> ctime(mktime(t))
'Wed Feb 8 13:52:09 2023'
2.2.2 strftime()
-
简介:
strftime
利用一个格式字符串,对时间格式进行表示 -
格式化控制符:
格式化字符串 | 时间/日期 | 值范围和实例 |
---|---|---|
%Y | 年份 | 0001~9999,例如:2023 |
%m | 月份 | 01~12,例如:10 |
%B | 月名 | January~December,例如:April |
%b | 月名缩写 | Jan~Dec,例如:Apr |
%d | 日期 | 01~31,例如:25 |
%A | 星期 | Monday~Sunday,例如:Wednesday |
%a | 星期缩写 | Mon~Sun,例如:Wed |
%H | 小时(24h制) | 00~23,例如:12 |
%I | 小时(12h制) | 01~12,例如:7 |
%p | 上/下午 | AM/PM,例如:PM |
%M | 分钟 | 00~59,例如:26 |
%S | 秒 | 00~59,例如:26 |
- 示例:
>>> from time import *
>>> lct = localtime()
>>> lct
time.struct_time(tm_year=2023, tm_mon=2, tm_mday=8, tm_hour=13, tm_min=54, tm_sec=13, tm_wday=2, tm_yday=39, tm_isdst=0)
>>> strftime('%Y-%m-%d %H:%M:%S',lct)
'2023-02-08 13:54:13'
>>> strftime('%Y-%m-%d %H:%M:%S')
'2023-02-08 14:00:12'
2.2.3 strptime()
- 简介:
strptime()
方法与strftime()
方法完全相反,用于提取字符串中的时间来生成struct_time
对象,可以灵活地作为time
模块的输入接口 - 示例:
>>> from time import *
>>> timeString = '2008-08-26 20:01:56'
>>> strptime(timeString, '%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2008, tm_mon=8, tm_mday=26, tm_hour=20, tm_min=1, tm_sec=56, tm_wday=1, tm_yday=239, tm_isdst=-1)
2.3 计时
3. 习题
个人整理了一些Python习题与相应的解析,可见专栏:Python编程习题
4. 本文代码编译环境及版本
- Python IDLE
- Python 3.7
5. 更新日志
时间 | 内容 |
---|---|
2023.2.8 | 首次发表 |
6. 参考
[1] 什么是时间戳
[2]《全国计算机等级考试二级教程Python语言程序设计(2022年版)》
编辑不易,点赞收藏关注!