第12.5节 Python time模块导览
一、时间相关的概念
time模块模块提供了各种时间相关的函数,在介绍时间相关功能前,先介绍一些术语和惯例:
- epoch 是时间开始的点,并且取决于平台。对于Unix, epoch 是1970年1月1日00:00:00(UTC)。要找出给定平台上的 epoch ,请查看 time.gmtime(0) 。
- 术语 Unix 纪元秒数 是指自国际标准时间 1970 年 1 月 1 日零时以来经过的总秒数,通常不包括 闰秒。 在所有符合 POSIX 标准的平台上,闰秒都会从总秒数中被扣除。
- time模块中的功能可能无法处理纪元之前或将来的远期日期和时间。未来的截止点由C库决定;对于32位系统,它通常在2038年。
- 2000年(Y2K)问题 :Python依赖于平台的C库,它通常没有2000年问题,因为所有日期和时间都在内部表示为自纪元以来的秒数。函数 strptime() 在给出 %y 格式代码时可以解析2位数年份。当解析2位数年份时,它们将根据 POSIX 和 ISO C 标准进行转换:值 69–99 映射到 1969–1999,值 0–68 映射到2000–2068。
- UTC是协调世界时(以前称为格林威治标准时间,或GMT)。缩写UTC不是错误,而是英语和法语之间的妥协。
- DST是夏令时,在一年中的一部分时间(通常)调整时区一小时。 DST规则很神奇(由当地法律确定),并且每年都会发生变化。 C 库有一个包含本地规则的表(通常是从系统文件中读取以获得灵活性),并且在这方面是True Wisdom的唯一来源。
- 各种实时函数的精度可能低于表示其值或参数的单位所建议的精度。例如,在大多数Unix系统上,时钟 “ticks” 仅为每秒50或100次。
二、time模块的主要功能
- time.asctime([t]):转换一个元组或 struct_time 表示的时间t,由 gmtime() 或 localtime() 返回为以下形式的字符串: ‘Wed Aug 7 11:21:16 2019’ 。如果未提供 t ,则使用由 localtime() 返回的当前时间。
- time.ctime([secs]):将自 epoch以来的秒数 表示的时间转换为表示本地时间的字符串。如果未提供 secs 或为 None,则使用由 time() 返回的当前时间。 ctime(secs) 相当于 asctime(localtime(secs)) 。
- time.gmtime([secs]):将 自 epoch以来的秒数表示的时间转换为UTC的 struct_time ,如果未提供 secs 或为 None ,则使用由 time() 返回的当前时间。
- time.localtime([secs]):与 gmtime() 相似但转换为当地时间。如果未提供 secs 或为 None ,则使用由 time() 返回的当前时间。
- time.mktime(t):这是 localtime() 的反函数。它的参数是 struct_time 或者完整的 9 元组,它表示 本地时间,而不是 UTC 。
- time.process_time():返回当前进程的系统和用户CPU时间总和的值(以小数秒为单位)。它不包括睡眠期间经过的时间。根据定义,它在整个进程范围中。返回值的参考点未定义,因此只有连续调用结果之间的差异才有效。
- time.sleep(secs):休眠secs秒,参数可以是浮点数,以指示更精确的睡眠时间。实际的暂停时间可能小于请求的时间,因为任何捕获的信号将在执行该信号的捕获例程后终止 sleep() 。。
- time.strftime(format[, t]):转换一个元组或 struct_time 表示的由 gmtime() 或 localtime() 返回的时间到由 format 参数指定的字符串。如果未提供 t ,则使用由 localtime() 返回的当前时间。 format 必须是一个字符串。如:
>>> "{}".format(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
'2019-08-07 11:30:53'
>>>
- time.strptime(string[, format]):根据格式解析表示时间的字符串。 返回值为一个被 gmtime() 或 localtime() 返回的 struct_time 。format 参数使用与 strftime()使用的指令相同的指令。它默认为匹配 ctime() 返回格式的 “%a %b %d %H:%M:%S %Y”` 。
关于时间的模块还有datetime和calendar,在此不在介绍,大家自行查询相关文档。
老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!