千家信息网

如何解析python内置时间模块

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,如何解析python内置时间模块,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。无参数函数先解释一下时间戳,所谓时间戳,即自1970年1月
千家信息网最后更新 2026年11月04日如何解析python内置时间模块

如何解析python内置时间模块,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。


无参数函数

先解释一下时间戳,所谓时间戳,即自1970年1月1日00:00:00所经历的秒数,然后就可以理解下面的函数了。下面代码默认

from time import *


implementationmonotonicadjustableresolution
'time'GetSystemTimeAsFileTime()FalseTrue0.015625
'thread_time'GetThreadTimes()TrueFalse1e-07
'process_time'GetProcessTimes()TrueFalse1e-07
'monotonic'GetTickCount64()TrueFalse0.015625
'perf_counter'QueryPerformanceCounter()TrueFalse1e-07

上面五组函数中,只有time.time()的值具有绝对的意义,其他值都只具有相对的意义。

通过get_clock_info函数可以查看这些时钟的特性,其输入输出分别为


implementationmonotonicadjustableresolution
'time'GetSystemTimeAsFileTime()FalseTrue0.015625
'thread_time'GetThreadTimes()TrueFalse1e-07
'process_time'GetProcessTimes()TrueFalse1e-07
'monotonic'GetTickCount64()TrueFalse0.015625
'perf_counter'QueryPerformanceCounter()TrueFalse1e-07

其中,

  • 如果时钟可以自动更改或由系统管理员手动更改,则adjustable为True,否则为False。

  • implementation表示用于获取时钟值的基础C函数的名称。

  • 如果时钟不能倒退,则monotonic为 True,否则为 False 。

  • resolution表示以秒为单位的时钟分辨率。

接下来可以测试一下这些时钟的特性。

>>> def test(n):...   aTime = time.time()...   aTh = time.thread_time()...   aPr = time.process_time()...   aMo = time.monotonic()...   aPe = time.perf_counter()...   for i in range(int(n)): j = i**2...   bTime = time.time()...   bTh = time.thread_time()...   bPr = time.process_time()...   bMo = time.monotonic()...   bPe = time.perf_counter()...   aStr = f'aTime={aTime},aTh={aTh},aPr={aPr},aMo={aMo},aPe={aPe}\n'...   bStr = f'bTime={bTime},bTh={bTh},bPr={bPr},bMo={bMo},bPe={bPe}'...   print(aStr+bStr)...>>> test(1e6)aTime=1634625786.136904,aTh=0.03125,aPr=0.03125,aMo=199082.078,aPe=199085.4751224bTime=1634625786.340363,bTh=0.234375,bPr=0.234375,bMo=199082.281,bPe=199085.6787309>>> test(1e6)aTime=1634625789.7817287,aTh=0.234375,aPr=0.234375,aMo=199085.734,aPe=199089.1195357bTime=1634625789.981198,bTh=0.421875,bPr=0.421875,bMo=199085.921,bPe=199089.3195721>>> test(1e6)aTime=1634625796.3934195,aTh=0.421875,aPr=0.421875,aMo=199092.343,aPe=199095.731209bTime=1634625796.5789576,bTh=0.609375,bPr=0.609375,bMo=199092.531,bPe=199095.9172852>>>

可清晰地看到,在调用test的间隔中,thread_time和process_time并未发生变化,即二者不计算线程或者进程休眠时的时间。

一般在time模块中,最常用的两个函数分别是time.time()和time.sleep(),前者用于获取时间戳,从而统计程序运行时长;后者则可以暂停线程。

可以通过time.thread_time()来检测sleep函数的功能

>>> def test(n):...    aTime = time.time()...    aTh = time.thread_time()...    aPr = time.process_time()...    time.sleep(n)...    bTime = time.time()...    bTh = time.thread_time()...    bPr = time.process_time()...    aStr = f'aTime={aTime},aTh={aTh},aPr={aPr}\n'...    bStr = f'bTime={bTime},bTh={bTh},bPr={bPr}'...    print(aStr+bStr)...>>> test(1)aTime=1634649370.2819958,aTh=0.640625,aPr=0.640625bTime=1634649371.2862759,bTh=0.640625,bPr=0.640625>>> test(1)aTime=1634649372.72013,aTh=0.640625,aPr=0.640625bTime=1634649373.723695,bTh=0.640625,bPr=0.640625>>> test(1)

时区概念

接下来需要介绍一些有关时间的概念

GMT:即格林威治标准时间。

UTC:世界协调时间,比格林威治更精确。

DST:D即Daylight,表示夏令时。

CST:美国、澳大利亚、中国、古巴的标准时间。

知道这些时区的概念之后,就能理解time中的常量:

常量altzonedaylighttznametimezone

时区偏移如未定义非DST时区,则为0时区名称本地时区偏移

struct_time

为了更好地表示时间,time中封装了struct_time类,其成员包括

索引属性值含义
0tm_year正整数年
1tm_monrange [1, 12]月
2tm_mdayrange [1, 31]月中的日期
3tm_hourrange [0, 23]时
4tm_minrange [0, 59]分
5tm_secrange [0, 61]秒
6tm_wdayrange [0, 6],周一为 0星期即
7tm_ydayrange [1, 366]在一年中的第几天
8tm_isdst0, 1 或 -1是否为DST
-tm_zone时区名称的缩写
-tm_gmtoff以秒为单位的UTC以东偏离

在了解struct_time这一数据结构之后,就能读懂下列函数。


单参函数
gmtime(secs)将时间戳转化为UTC时间[struct_time格式]
localtime(secs)将戳转化为本地时间[struct_time格式]
ctime(secs)将时间戳转化为UTC时间字符串
asctime(secs)将时间结构体转化为本地时间字符串
mktimelocaltime的反函数,将struct_time转为秒数

time.strftime(format[, t])

可以将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]
%pAM 或 PM

%m月份,范围[01,12]

%U年中周数,范围[00,53]
周日作为第一天
%W同左,周一作为第一天
%w周中日,范围[0(星期日),6]

%x适当的日期表示%X适当的时间表示
%y无世纪年份,范围[00,99]%Y带世纪的年份
%z时区偏移

%Z时区名称

%%字面的 '%' 字符。

strptime()为其反函数。

例如

>>> t = time.strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())>>> t'Tue, 19 Oct 2021 13:46:37 +0000'>>> T = time.strptime(t,"%a, %d %b %Y %H:%M:%S +0000")>>> Ttime.struct_time(tm_year=2021, tm_mon=10, tm_mday=19, tm_hour=13, tm_min=46, tm_sec=37, tm_wday=1, tm_yday=292, tm_isdst=-1)

看完上述内容,你们掌握如何解析python内置时间模块的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

时间 范围 函数 时区 名称 时钟 星期 格式 模块 适当 中日 字符 日期 月份 概念 缩写 偏移 接下来 世纪 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技 保险科技 互联网保险 互联网科技行业发展 互联网科技作文 广州紫鲸互联网科技 华中科技有哪些互联网大佬 移动互联网科技股 武汉健翔互联网络科技有限公司 苏州五指互联网络科技有限 天津腾达互联网科技有限公司 江苏苏星互联网科技有限公司 上海互联网科技公司ppt 图游互联网科技 长沙渺峰互联网科技有限公司 马化腾互联网科技教学 绵阳真晨互联网科技有限公司 互联网科技对化妆品行业 互联网科技创新创业项目 银川新华互联网科技学校招聘 小牛互联网科技有限公司地址 广州淘业互联网络科技 云电互联网科技 互联网前沿科技 互联网科技公司介绍 互联网科技宣传片 银川新华互联网科技职业技术培训学校图片 佛山市拉法互联网科技有限公司 工业互联网展湾科技股份有限公司 兰石爱特工业互联网科技分公司 科技互联网公司两年变化
0