Python中time模块的学习方法
这篇文章主要讲解了Python中time模块的学习方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
time 模块主要包含各种提供日期、时间功能的类和函数。该模块既提供了把日期、时间格式化为字符串的功能,也提供了从字符串恢复日期、时间的功能。
在 Python 的交互式解释器中先导入 time 模块,然后输入 [e for e in dir(time) if not e.startswith('_')] 命令,即可看到该模块所包含的全部属性和函数:
>>> [e for e in dir(time) if not e.startswith('_')]['altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'perf_counter', 'process_time', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname']
在 time 模块内提供了一个 time.struct_time 类,该类代表一个时间对象,它主要包含 9 个属性,每个属性的信息如下表所示:
表 1 time.struct_time 类中各属性的含义
比如,Python 可以用 time.struct_time(tm_year=2018, tm_mon=5, tm_mday=2, tm_hour=8, tm_min=0, tm_sec=30, tm_wday=3, tm_yday=1, tm_isdst=0) 很清晰地代表时间。
此外,Python 还可以用一个包含 9 个元素的元组来代表时间,该元组的 9 个元素和 struct_time 对象中 9 个属性的含义是一一对应的。比如程序可以使用(2018, 5, 2, 8, 0, 30, 3, 1, 0)来代表时间。
在日期、时间模块内常用的功能函数如下:
time.asctime([t]):将时间元组或 struct_time 转换为时间字符串。如果不指定参数 t,则默认转换当前时间。
time.ctime([secs]):将以秒数代表的时间转换为时间宇符串。
time.gmtime([secs]):将以秒数代表的时间转换为 struct_time 对象。如果不传入参数,则使用当前时间。
time.localtime([secs]):将以秒数代表的时间转换为代表当前时间的 struct_time 对象。如果不传入参数,则使用当前时间。
time.mktime(t):它是 localtime 的反转函数,用于将 struct_time 对象或元组代表的时间转换为从 1970 年 1 月 1 日 0 点整到现在过了多少秒。
time.perf_counter():返回性能计数器的值。以秒为单位。
time.process_time():返回当前进程使用 CPU 的时间。以秒为单位。
time.sleep(secs):暂停 secs 秒,什么都不干。
time.strftime(format[, t]):将时间元组或 struct_time 对象格式化为指定格式的时间字符串。如果不指定参数 t,则默认转换当前时间。
time.strptime(string[, format]):将字符串格式的时间解析成 struct_time 对象。
time.time():返回从 1970 年 1 月 1 日 0 点整到现在过了多少秒。
time.timezone:返回本地时区的时间偏移,以秒为单位。
time.tzname:返回本地时区的名字。
下面程序示范了 time 棋块的功能函数:
import time# 将当前时间转换为时间字符串print(time.asctime())# 将指定时间转换时间字符串,时间元组的后面3个元素没有设置print(time.asctime((2018, 2, 4, 11, 8, 23, 0, 0 ,0))) # Mon Feb 4 11:08:23 2018# 将以秒数为代表的时间转换为时间字符串print(time.ctime(30)) # Thu Jan 1 08:00:30 1970# 将以秒数为代表的时间转换为struct_time对象。print(time.gmtime(30))# 将当前时间转换为struct_time对象。print(time.gmtime())# 将以秒数为代表的时间转换为代表当前时间的struct_time对象print(time.localtime(30))# 将元组格式的时间转换为秒数代表的时间print(time.mktime((2018, 2, 4, 11, 8, 23, 0, 0 ,0))) # 1517713703.0# 返回性能计数器的值print(time.perf_counter())# 返回当前进程使用CPU的时间print(time.process_time())#time.sleep(10)# 将当前时间转换为指定格式的字符串print(time.strftime('%Y-%m-%d %H:%M:%S'))st = '2018年3月20日'# 将指定时间字符串恢复成struct_time对象。print(time.strptime(st, '%Y年%m月%d日'))# 返回从1970年1970年1月1日0点整到现在过了多少秒。print(time.time())# 返回本地时区的时间偏移,以秒为单位print(time.timezone) # 在国内东八区输出-28800
运行上面程序,可以看到如下输出结果:
Fri Feb 22 11:28:39 2019Mon Feb 4 11:08:23 2018Thu Jan 1 08:00:30 1970time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=30, tm_wday=3, tm_yday=1, tm_isdst=0)time.struct_time(tm_year=2019, tm_mon=2, tm_mday=22, tm_hour=3, tm_min=28, tm_sec=39, tm_wday=4, tm_yday=53, tm_isdst=0)time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=30, tm_wday=3, tm_yday=1, tm_isdst=0)1517713703.00.00.1406252019-02-22 11:28:39time.struct_time(tm_year=2018, tm_mon=3, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=79, tm_isdst=-1)1550806119.4960592-28800
time 模块中的 strftime() 和 strptime() 两个函数互为逆函数,其中 strftime() 用于将 struct_time 对象或时间元组转换为时间字符串;而 strptime() 函数用于将时间字符串转换为 struct_time 对象。这两个函数都涉及编写格式模板,比如上面程序中使用 %Y 代表年、%m 代表月、%d 代表日、%H 代表时、%M 代表分、%S 代表秒。这两个函数所需要的时间格式字符串支持的指令如下表所示:
令
含义
知识点扩展:
time模块
这个模块提供各种与时间相关的函数。相关功能,可以参见datetime和calendat模块。
此模块并非所有平台提供所有功能,因平台而异
以下是对一些术语和惯例的解释
初始时间因平台而异。对于Unix平台,初始时间是1970,01,01,00:00:00(UTC)。查看每个操作平台的初始时间可以使用time.gmtime(0)函数。在所有POSIX平台上,从初始时间以来的秒数都不包括闰秒
该模块中的函数可能不处理初始时间以前和遥远未来的日期和时间,未来的分界点对于32位操作系统是2038年。
UTC是协调世界时(以前称为格林尼治标准时间,GMT)。缩写UTC不是一个错误,而是英语和法语之间的妥协。
DST是夏令时,在一年中的某些时候,时区通常会调整一个小时。DST规则是神奇的(由当地法律决定),每年都在变化。
各种实时函数的精度可能低于表示其值或参数的单位所建议的精度。
看完上述内容,是不是对Python中time模块的学习方法有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。