python 模块 - time
1.1 time模块
用于获取,操作日期和时间。
1.2 时间戳
时间戳用于计算机内部时间值,用浮点数表示
import time
ticks = time.time()
print(f"当前时间戳为:{ticks}")
用time()获取时间戳
1.3 struct_time 时间结构体
为了更好地表示时间,time中封装了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 | 是否为DST(夏令时) |
1.3.1 将时间戳转换为时间struct_time
函数 | 说明 |
---|---|
time.gmtime(secs) | UTC时间 |
time.localtime(secs) | 本地时间 |
例:
>>> import time
>>> time.gmtime()
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=19, tm_hour=7, tm_min=32, tm_sec=35, tm_wday=0, tm_yday=353, tm_isdst=0)
>>> time.localtime(10)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=10, tm_wday=3, tm_yday=1, tm_isdst=0)
>>>
1.3.2 把struct_time转换为秒
# time.mktime(struct_time)
>>> import time
>>> obj = time.localtime()
>>> time.mktime(obj)
1671435622.0
1.4 时间戳或时间结构体转换为时间字符串
函数 | 说明 |
---|---|
time.ctime(secs) | 时间戳转换为UTC时间字符串 |
time.asctime(struct_time) | 将时间结构体转化为本地时间字符串 |
注意:如果asctime()没有参数,则默认用time.localtime()创建时间结构体作为参数。
例:
>>> time.ctime()
'Mon Dec 19 15:39:00 2022'
>>> time.asctime(time.localtime())
'Mon Dec 19 15:39:09 2022'
1.5 时间格式化
- time.strftime(format,t) 把struct_time转换为自定义格式的字符串。
- time.strptime(time_str, format) 把时间字符串,转换为struct_time,是time.strftime的反函数。
可以将struct_time通过匹配符进行格式化输出,其转换格式为
名称 | 含意 | 名称 | 含意 |
---|---|---|---|
%a | 星期的缩写 | %A | 星期的名称 |
%b | 月份缩写 | %B | 月份名称 |
%c | 适当的日期和时间表示 | ||
%d | 月中日,范围[01,31] | %j | 年中日,范围[001,366] |
%H | 小时,范围[00,23] | %I | 小时,范围[01,12] |
%M | 分钟,范围[00,59] | %S | 秒,范围[00,61] |
%p | AM 或 PM | ||
%m | 月份,范围[01,12] | ||
%U | 年中周数,范围[00,53] 周日作为第一天 | %W | 同左,周一作为第一天 |
%w | 周中日,范围[0(星期日),6] | ||
%x | 适当的日期表示 | %X | 适当的时间表示 |
%y | 无世纪年份,范围[00,99] | %Y | 带世纪的年份 |
%z | 时区偏移 | ||
%Z | 时区名称 | ||
%% | 字面的 ‘%’ 字符。 |
如:
>>> t = time.localtime()
>>> time.strftime('%Y-%m-%d %H:%M:%S %A', t)
'2022-12-19 15:48:36 Monday'
>>> time.strftime('%X', t)
'15:48:36'
>>> time.strftime('%x', t)
'12/19/22'
反函数:
>>> cur = time.strftime('%Y-%m-%d %H:%M:%S %A', t)
>>> t = time.strptime(cur,'%Y-%m-%d %H:%M:%S %A')
>>> t
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=19, tm_hour=15, tm_min=48, tm_sec=36, tm_wday=0, tm_yday=353, tm_isdst=-1)
1.6 程序计时
函数 | 说明 |
---|---|
time.perf_counter() | 返回CPU级别的时间计数值,单位为秒。 |
time.sleep(s) | 当前线程休眠s秒 |
import time
# 开始计时
start = time.perf_counter()
sum = 0
for i in range(1,10000000):
sum += i
# 结束计时
end = time.perf_counter()
# 计算运行了多长时间
print("seconds:{}".format(end - start))
# seconds:0.7894374999741558
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下