python基础系列讲解——时间模块详解大全之time模块

xyou xyou     2022-12-09     741

关键词:

Python中提供处理时间日期相关的内置模块有time、datetime和calendar。

time模块中大多数函数调用了所在平台C library 的同名函数,因此更依赖于操作系统层面,所以time模块的有些函数与平台相关,在不同的平台上可能会有不同的效果,这点需要特别注意下,即time模块的功能并不适用于所有平台。

使用时需要导入time模块,如下所示:

import time

time模块的时间表现的格式主要有以下三种:

  • timestamp时间戳。时间戳表示的是从新纪元开始按秒计算的偏移量,任何操作系统都可以运行time.gmtime(0)查找此系统的新纪元。对于时间戳的最大极限日期取决于系统中C函数库所支持的日期,对于32位系统而言为2038年,如果需要处理在所述范围之外的日期,则需要考虑使用datetime模块。如下所示:
#查找此系统的新纪元
print(time.gmtime(0))
#time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

#生成当前时间的timestamp
print(time.time())#1556973222.546307
  • struct_time时间元组,共有九个元素组,gmtime()、localtime()和strptime()都以时间元祖(struct_time)的形式返回。如下所示:

技术图片

#生成struct_time
print(time.localtime())#time.struct_time(tm_year=2019, tm_mon=5, tm_mday=11, tm_hour=12, tm_min=20, tm_sec=58, tm_wday=5, tm_yday=131, tm_isdst=0)
  • format time格式化时间。格式化的结构可使得时间更具有可读性,主要有自定义格式和固定格式两种,比如:
#生成format_time
#生成自定义格式的时间表示格式
print(time.strftime("%Y-%m-%d %X",time.localtime()))#2019-05-04 20:40:01
#生成固定格式的时间表示格式 叉车配件
print(time.asctime(time.localtime()))#Sat May 11 19:45:16 2019
print(time.ctime(time.time()))#Sat May 11 19:45:16 2019
print(time.ctime(time.time()+10))#Sat May 11 19:45:26 2019

time模块中timestamp、struct_time和format time三种时间格式按以下方式转换:

#struct_time to timestamp  note:time.localtime()——struct_time
print(time.mktime(time.localtime()))
#1556975223.0

# timestamp to struct_time 格林威治时间 note:time.time()——timestamp
print(time.gmtime(time.time()))
#time.struct_time(tm_year=2019, tm_mon=5, tm_mday=11, tm_hour=4, tm_min=20, tm_sec=58, tm_wday=5, tm_yday=131, tm_isdst=0)

#format_time to struct_time
print(time.strptime(‘2011-05-05 16:37:06‘, ‘%Y-%m-%d %X‘))
#time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=16, tm_min=37, tm_sec=6, tm_wday=3, tm_yday=125, tm_isdst=-1)

#struct_time to format_time
print(time.strftime("%Y-%m-%d %X"))#2019-05-11 08:45:48
print(time.strftime("%Y-%m-%d %X",time.localtime()))#2019-05-11 08:45:48

关于time.asctime()和time.ctime()在上文中已经提到,可以分别将struct_time和timestamp时间格式生成固定的format time格式。

time模块中关于系统时间的处理有如下几个函数:

time.clock()以秒为单位返回当前CPU运行时间,用于衡量不同程序的耗时,比time.time()更实用。不过在Python3.3之后就不推荐使用,原因是该方法依赖于操作系统,官方建议使用per_counter(返回系统运行时间)或process_time(返回进程运行时间)代替。如下所示:

print(time.clock())#0.221209
#DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead

time.perf_counter()返回系统的运行时间(计时器的精准时间),包含整个系统的睡眠时间。由于返回值的基准点是未定义的,所以只有连续调用的结果之间的差才是有效的。如下所示:

print(time.perf_counter())#4.373607855
time.sleep(5)
print(time.perf_counter())#9.374290978

time.process_time()返回当前进程执行CPU的时间总和,不包含睡眠时间.由于返回值的基准点是未定义的,所以只有连续调用的结果之间的差才是有效的。如下所示:

print(time.process_time())#0.385954
time.sleep(5)
print(time.process_time())#0.385982

time.sleep(secs)推迟调用线程的运行,secs的单位是秒。如下所示:

time.sleep(5)

python基础详解

python基础部分python基础一python基础二Python最详细,最深入的代码块小数据池剖析深浅copypython文件操作python函数部分python函数初识python函数进阶python装饰器python迭代器,生成器python内置函数,匿名函数python递归函数python二分查找算法... 查看详情

rk3568平台开发系列讲解(驱动基础篇)makefile详解

查看详情

rk3568平台开发系列讲解(驱动基础篇)mmap系统调用详解

查看详情

python标准库datetime之date模块详解(代码片段)

Python标准库datetime之date模块详解datetime是Python提供的操作日期和时间的标准库,主要有datetime.date模块、datetime.time模块及datetime.datetime模块。其中date模块提供了日期操作相关的方法;time模块提供了时间操作相关的方法;datetime提... 查看详情

rk3568平台开发系列讲解(驱动基础篇)驱动模块传参

查看详情

python标准库datetime之datetime模块详解(代码片段)

Python标准库datetime之datetime模块详解1、日期时间对象日期时间对象是指具有日期(年月日)和时间(时分秒)双重属性的实例日期时间对象的类型为datetime.datetime日期时间对象常用的属性有年、月、日、时、分、秒、微秒日期时间对象... 查看详情

python标准库datetime之time模块详解(代码片段)

Python标准库datetime之time模块详解上一篇博文中我们学习了datetime库中的日期模块(date),本文我们来学习下时间模块(time)。传送门:点击即可跳转日期模块1、时间对象类主要处理时、分、秒操作创建对象常用的参数有(小时,分钟,秒... 查看详情

[python从零到壹]十八.可视化分析之basemap地图包入门详解(代码片段)

欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分... 查看详情

rk3568平台开发系列讲解(驱动基础篇)linux内核面向对象思想之继承

查看详情

rk3568平台开发系列讲解(驱动基础篇)linux内核面向对象思想之封装

查看详情

[python从零到壹]四十七.图像增强及运算篇之腐蚀和膨胀详解(代码片段)

欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分... 查看详情

[python从零到壹]十七.可视化分析之matplotlibpandasecharts入门万字详解(代码片段)

欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分... 查看详情

基于ti方案cc2540低功耗无线蓝牙模块详解

A77系列是工作在2.4GISM频段的低功耗蓝牙(BLE)透传模块,基于TISimpleLink低功耗Bluetooth无线MCUCC2540为核心处理器,并符合BluetoothSpecificationV4.0LowEnergy(BLE4.0)协议规范。该系列模块RF信号最大功率约+4dBm,提供3种... 查看详情

uicc之usim详解全系列——uicc基础知识介绍

...16)文章目录UICC之USIM详解全系列——UICC(TS102221-v16)一、UICC基础知识介绍什么是SIM卡什么是UICC卡USIM卡分类SIM卡内部结构SIM 查看详情

kotlin基础从入门到进阶系列讲解(入门篇)android之gson的使用(代码片段)

Kotlin基础从入门到进阶系列讲解(入门篇)Android之GSON的使用Android之GSON的使用Android之GSON的使用->返回总目录<-Google提供的GSON开源库可以让解析JSON数据的工作简单到让你不敢想象的地步项目中需要添加GSON库的依赖。编辑app/b... 查看详情

[python从零到壹]六十四.图像识别及经典案例篇之图像傅里叶变换和傅里叶逆变换详解(代码片段)

...快乐,阖家幸福,健康快乐!欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解... 查看详情

源码详解系列------全面讲解logback的使用和源码(代码片段)

...e,logback-classic,logback-access。logback-core是其它两个模块的基础。logback-classic模块可以看作是log4j的一个优化版本,它天然的支持SLF4J。logback-access提供了http访问日志的功能,可以与Servlet容器进行整合,例如:Tomcat、Jetty。本文将... 查看详情

python基础|文件异常以及模块详解

⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。 查看详情