【Python 标准库学习】时间相关的函数库 — time

欢迎加入 Python 官方文档翻译团队:https://www.transifex.com/python-doc/


time 模块提供了各种时间相关的函数,该模块中的大多数函数是调用了所在平台 C 语言库的同名函数,这些函数的语义因平台而异,可能会在不同的平台有不同的效果。

time 模块和 datetime 模块类似,区别在于 time 模块提供的功能是更加接近于操作系统层面,所能表述的日期范围被限定在 1970 - 2038 之间,而 datetime 模块提供了更多实用的函数,可以理解为 datetime 基于 time 进行了封装,更加高级。

time 模块官方文档:https://docs.python.org/3.7/library/time.html


部分常用函数:

    • 1、time.sleep(secs)
    • 2、time.time()
    • 3、time.gmtime([secs])
    • 4、time.localtime([secs])
    • 5、time.mktime(t)
    • 6、time.strftime(format[, t])
    • 7、time.strptime(string[, format])
    • 8、time.clock()
    • 9、time.asctime([t])
    • 10、time.ctime([secs])


1、time.sleep(secs)

暂停所执行的调用线程达到给定的秒数,然后恢复代码正常执行,参数可以是浮点数,以指示更精确的睡眠时间。实际的暂停时间可能小于请求的时间。

应用举例:

import time
print('第一条语句执行成功,5秒后执行下一条语句...')
time.sleep(5)
print('第二条语句执行成功。')

2、time.time()

自纪元(Epoch)年起以秒为单位返回浮点数的时间

在 Windows 和大多数 Unix 系统上,纪元开始时间是 1970 年 1 月 1 日,00:00:00(UTC)

应用举例:

>>> import time
>>> print(time.time())
1582879127.9589412

3、time.gmtime([secs])

将一个时间戳转换为 UTC 时区的 struct_time 元组,struct_time 是在 time 模块中定义的表示时间的对象,可选的参数 secs 表示从纪元(Epoch)年起到现在的秒数,即从1970 年 1 月 1 日,00:00:00 起到现在的秒数,其默认值为 time.time(),函数返回 time.struct_time 类型的对象。

应用举例:

>>> import time
>>> print(time.gmtime())
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=28, tm_hour=10, tm_min=18, tm_sec=1, tm_wday=4, tm_yday=59, tm_isdst=0)
>>>
>>> print(time.gmtime(1582879127))
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=28, tm_hour=8, tm_min=38, tm_sec=47, tm_wday=4, tm_yday=59, tm_isdst=0)
>>>
>>> print(time.gmtime(666666.123456))
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=8, tm_hour=17, tm_min=11, tm_sec=6, tm_wday=3, tm_yday=8, tm_isdst=0)

struct_time 元组结构具有如下属性:

序号属性
0tm_year4 位数,年
1tm_mon1 - 12,月
2tm_mday1 - 31,日
3tm_hour0 - 23,小时
4tm_min0 - 59,分钟
5tm_sec0 - 61,秒 (60 或 61 是闰秒)
6tm_wday0 - 6,一周的第几日 (0 是周一)
7tm_yday1 - 366,一年的第几日(儒略历)
8tm_isdst1 表示夏令时,0 表示非夏令时,-1 表示未知

4、time.localtime([secs])

localtime() 函数类似 gmtime(),作用是格式化时间戳为本地的时间,如果 secs 参数未输入,则以当前时间为转换标准。

应用举例:

>>> import time
>>> print(time.localtime())
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=28, tm_hour=19, tm_min=55, tm_sec=9, tm_wday=4, tm_yday=59, tm_isdst=0)
>>>
>>> print(time.localtime(1582879127))
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=28, tm_hour=16, tm_min=38, tm_sec=47, tm_wday=4, tm_yday=59, tm_isdst=0)

5、time.mktime(t)

该函数执行与 gmtime()localtime() 相反的操作,它接收 struct_time 对象作为参数,返回用秒数来表示时间的浮点数。t 参数表示结构化的时间或者完整的9位元组元素。

如果输入的值不是一个合法的时间,将触发 OverflowError 或 ValueError。

应用举例:

>>> print(time.mktime((2020,2,28,20,40,14,5,59,0)))
1582893614.0

6、time.strftime(format[, t])

根据带时间格式符号的字符串解析时间,并返回字符串,转换一个元组或 struct_time 时间到由 format 参数指定的字符串格式。如果未提供 t ,则使用由 localtime() 返回的当前时间,format 必须是一个字符串,如果 t 中的任何字段超出允许范围,则引发 ValueError 。

应用举例:

>>> import time
>>> print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
2020-02-28 20:10:24
>>>
>>> print(time.strftime('%a %b %d %H:%M:%S %Y', time.localtime()))
Fri Feb 28 20:13:49 2020
>>>
>>> print(time.strftime('%a %b %d %H:%M:%S %Y'))    # 未指定 t,则使用由 localtime() 返回的当前时间
Fri Feb 28 20:15:16 2020

7、time.strptime(string[, format])

time.strftime() 函数相反,time.strptime() 则是根据指定的格式把一个时间字符串解析为时间元组。string 参数表示时间字符串,format 参数表示格式化字符串。

应用举例:

>>> import time
>>> print(time.strptime("Fri Feb 28 20:13:49 2020", "%a %b %d %H:%M:%S %Y"))
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=28, tm_hour=20, tm_min=13, tm_sec=49, tm_wday=4, tm_yday=59, tm_isdst=-1)

strftime()strptime() 方法中 format 参数为时间日期格式化符号,各个格式化符号所代表的意思如下:

格式化符号含义
%a本地简化星期名称
%A本地完整星期名称
%b本地简化的月份名称
%B本地完整的月份名称
%c本地相应的日期表示和时间表示
%d月内中的一天(0-31)
%f以十进制数表示的毫秒,在左侧补零
%H24小时制小时数(0-23)
%I12小时制小时数(01-12)
%j年内的一天(001-366)
%m月份(01-12)
%M分钟数(00=59)
%p本地A.M.或P.M.的等价符
%S秒(00-59)
%U一年中的星期数(00-53)星期天为星期的开始
%w星期(0-6),星期天为星期的开始
%W一年中的星期数(00-53)星期一为星期的开始
%x本地相应的日期表示
%X本地相应的时间表示
%y两位数的年份表示(00-99)
%Y四位数的年份表示(000-9999)
%z±HHMM[SS[.ffffff]] 形式的 UTC 差值(如果对象为简单型则为空字符串)
%Z当前时区的名称
%%%号本身

8、time.clock()

将当前 CPU 处理器时间返回为以秒为单位的浮点数,通常用来衡量不同程序的耗时,比 time.time() 更有用。

注意:该函数在不同的系统上含义不同,在 Unix 系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。而在 Windows 中,第一次调用,返回的是进程运行的实际时间,而第二次之后的调用是自第一次调用以后到现在的运行时间。(实际上是以 Win32 上 QueryPerformanceCounter() 为基础,它比毫秒表示更为精确)

应用举例:

>>> import time
>>> time.clock()               # 获取时钟秒数
3e-07                          # 第一次调用该函数以来到执行截止的秒数
>>> t1 = time.clock()          # 第二次执行该函数截止秒数
>>> t2 = time.clock()          # 第三次执行该函数截止秒数
>>> t2 - t1                    # 第三次与第二次执行该函数截止秒数差
9.1433732

9、time.asctime([t])

该函数接受时间元组,并返回一个可读的形式为 Fri Feb 28 20:40:14 2020(2020年2月28日 周五20时40分14秒)的24个字符的字符串。

日期字段的长度为两个字符,如果日期只有一个数字则会以零填充。

如果不加参数 t,默认就是 time.localtime() 返回的时间元组。

接受的时间元组可以是由 gmtime()localtime() 所返回的表示时间的元组。

应用举例:

>>> print(time.asctime())                     # 不接收参数,默认 time.localtime() 返回的时间元组
Fri Feb 28 20:44:16 2020
>>>
>>> print(time.asctime(time.localtime()))     # 接受 time.localtime() 参数
Fri Feb 28 20:45:49 2020
>>>
>>> print(time.asctime((2020,2,28,20,40,14,5,59,0)))  # 人工指定时间结构元组
Sat Feb 28 20:40:14 2020

10、time.ctime([secs])

该函数把一个时间戳(按秒计算的浮点数)转化为 time.asctime() 的形式。 如果参数未给或者为 None 的时候,将会默认 time.time() 为参数。它的作用相当于 asctime(localtime(secs))。secs 参数表示要转换为字符串时间的秒数。

应用举例:

>>> print(time.ctime())
Fri Feb 28 20:55:23 2020
>>>
>>> print(time.ctime(1582879127))
Fri Feb 28 16:38:47 2020

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437759.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】响应式详解

一两年以前,我发现,很多人都被响应式搞得很懵逼。 现在,我依然发现,还是有很多人,依旧被响应式搞得很懵逼。 所以,我也很懵逼。 到底是哪个环节出了问题,让这么多学习前端的同学对于这个响应…

【Python 标准库学习】容器数据类型库 — collections

欢迎加入 Python 官方文档翻译团队:https://www.transifex.com/python-doc/ collections 模块实现了特定目标的容器,以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择。 collections 模块官方文档:https://docs.python.or…

【Python 标准库学习】安全哈希与摘要算法库 — hashlib

欢迎加入 Python 官方文档翻译团队:https://www.transifex.com/python-doc/ hashlib 模块针对不同的安全哈希和消息摘要算法实现了一个通用的接口。提供了常见的摘要算法,如MD5,SHA1等等。 摘要算法又称哈希算法、散列算法,摘要算…

【Python 必会技巧】[i for i in range(1,10)] — 列表解析式,列表中使用 for 循环

经常会看到类似于 [i for i in range(1,10)] 的表达式,这种表达式称为列表解析(List Comprehensions),类似的还有字典解析、集合解析等等。 列表解析式是将一个列表(实际上适用于任何可迭代对象)转换成另一…

【转】Microsoft Teams 常见问题

作者:Zimu 链接:https://www.zhihu.com/question/52246335/answer/244877022 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 功能还是很全的,能和skype、onedrive、yammer、shar…

Python 数据分析三剑客之 NumPy(一):理解 NumPy / 数组基础

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Asp.net的生命周期之应用程序生命周期

参考:http://msdn.microsoft.com/zh-cn/library/ms178473(vvs.100).aspx 参考:http://www.cnblogs.com/JimmyZhang/archive/2007/09/04/880967.html Http请求刚刚到达服务器的时候 当服务器接收到一个 Http请求的时候,IIS (Int…

Python 数据分析三剑客之 NumPy(二):数组索引 / 切片 / 广播 / 拼接 / 分割

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Asp.net的生命周期应用之IHttpModule和IHttpHandler

引言 Http 请求处理流程 和 Http Handler 介绍 这两篇文章里,我们首先了解了Http请求在服务器端的处理流程,随后我们知道Http请求最终会由实现了IHttpHandler接口的类进行处理(应该记得Page类实现了IHttpHandler)。从 Http 请求处理流程 一文的最后的一…

【转】静态类与非静态类

静态类 继承(多态)、静态本身就是相反的。另外需要知道属性、事件其实是些特殊的方法。 使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员。 static 修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索…

Python 数据分析三剑客之 NumPy(三):数组的迭代与位运算

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Python 数据分析三剑客之 NumPy(四):字符串函数总结与对比

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Microsoft Teams快速上手系列-02Teams组成概述及使用分享

在上一篇博客中介绍了Teams的前世今生,大家对Teams已经有了一个初步的认识,但是如上一篇文章中所说Teams是一个集成度很高的云协作平台,具体应该怎么去有效的利用起来呢?接下来这篇博客给大家全方位的分享一下Teams的组成部分以及…

Python 数据分析三剑客之 NumPy(五):数学 / 算术 / 统计 / 排序 / 条件 / 判断函数合集

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】ASP.NET内幕 - IIS处理模型

介绍 微软的Active ServerPages,即ASP,自1996年首次发布以来,为Web开发者构建Web应用提供了一个丰富、复杂的框架。过去的几年它的基础架构发展的如此迅速,成为目前大家了解的ASP.NET,已经不再象它的前身。ASP.NET是构…

沉淀一年零八个月,我也拿到了博客专家

回忆 第一篇文章的发布是在 2018.08.30,虽然注册 CSDN 已有三年多了,但一直都是白嫖大佬们的文章,没有自己写东西,回想起刚开始写博客,最开始并不是在 CSDN 的,在我大二上学期的时候,网上冲浪发…

JAVA-入门(内含jdk配置)

title: java入门 date: 2019-07-21 19:50:19 tags: java学习 top: 1 JAVASE学习 1.java入门 More info: Writing //超链接 2.java开发环境配置 第一步是配置本地开发环境,学习最基本的桌面开发,下面以win10为例配置Java开发环境,即&#…

【转】EF三种编程方式的区别Database first ,Model first ,code first

首先对于EF中先出现的datebase first和model first两种编程方式,其的区别根据字面意思很容易能够理解。 datebase first就是代表数据库优先,那么前提就是先创建数据库。 model first就是代表model优先,那么前提也就是先创建model&#xf…

Python 数据分析三剑客之 NumPy(六):矩阵 / 线性代数库与 IO 操作

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…