欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python学习笔记 time 模块

程序员文章站 2022-07-05 16:59:25
...

目录

  - 简述
  - 一些术语和约定
  - 表示时间的方式
  - 常用函数及解析

简述

  time 模块用于时间的访问和转换,它提供了各种与时间相关的函数和几个类,其中常用的一个类是 struct_time。

  尽管此模块始终可用,但并非所有平台上都提供所有功能。该模块中定义的大多数函数都是调用相同名称的平台C库函数。有时,这些函数的语义在平台之间会有所不同。

一些术语和约定

  1. 纪元(epoch):时间的起点,与平台有关,对于 Unix,纪元是对于Unix,纪元是 1970年1月1日 00:00:00(UTC)。可以通过 time.gmtime(0)了解给定平台上的纪元。
  2. 时间戳(Timestamp):通常来说,时间戳表示的是从1970年1月1日0时0分0秒开始到现在的秒数,不考虑闰秒。利用 time.time() 函数来获取时间戳。
  3. UTC:UTC是指世界标准时间(以前称为格林威治标准时间,即 GMT)。
  4. 时间元组(struct_time):时间元组是一种结构化的时间,它表现为一个元组(其实是一个类),共有九个元素,分别是:年, 月, 日,时,分,秒,一年中的第几周,一年中的第几天,夏令时(具体如下表)。struct_time 可以利用索引或属性名访问属性的值。
索引 属性 注释
0 tm_year 2019 (本年的年份)
1 tm_mon 1 ~ 12
2 tm_mday 1 ~ 31
3 tm_hour 0 ~ 23
4 tm_min 0 ~ 59
5 tm_sec 0 ~ 61 (60或61是闰秒)
6 tm_wday 0 ~ 6 0 表示周一
7 tm_yday 1 ~ 366 儒略历
8 tm_isdst -1, 0, 1 1表示夏令时生效,反之为0,-1表示状态未知

表示时间的方式

时间的表示方式有以下三种,其中计算机认识的时间只能是‘时间戳’格式,而人能看懂的则是另外两种格式

  1. 时间戳(timestamp)
  2. 结构化的时间(struct_time)
  3. 格式化的时间字符串(format String):利用 time.strftime() 函数来获取格式化的时间字符串,需传入表示格式的字符串(格式字符如下表)。
字符 含义
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(00-23)
%I 12小时制小时数(01-12)
%M 分钟数(00-59)
%S 秒(00-59)
%f 以十进制数表示的毫秒(000000-999999)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始,第一个星期日之前的日子都被视为第0周
%u 以十进制数显示的 ISO 8601 星期中的日序号,其中 1 表示星期一。
%w 星期(0-6),其中0表示星期日,6表示星期六
%W 一年中的星期数(00-53)星期一为星期的开始,第一个星期一之前的日子都被视为第0周
%x 本地相应的日期表示
%X 本地相应的时间表示
%z ±HHMM[SS[.ffffff]] 形式的 UTC 差值(如果对象为无知型则为空字符串)
%Z 当前时区的名称
%V 以十进制数显示的 ISO 8601 星期,以星期一作为每周的第一天。 第 01 周为包含 1 月 4 日的星期。
%G 带有世纪的 ISO 8601 年份,表示包含大部分 ISO 星期 (%V) 的年份。
%% %号本身

三种方式的转换
Python学习笔记 time 模块

常用函数及解析

	time()
        功能:以小数秒为单位获取时间戳
        参数:无
        返回值:一个浮点数,表示纪元到现在的秒数

    time_ns()
        功能:与 time() 相似,但单位是纳秒
        参数:无
        返回值:一个整数

    asctime([t])
        功能:将一个表示时间的元组或 struct_time 表示为这种形式:'Sat Sep 28 16:54:12 2019'
        参数:t 表示一个时间元组或一个 struct_time,若不提供该参数则默认 t = time.localtime()
        返回值:固定格式化的时间字符串

    ctime(secs=None)
        功能:将时间戳转换为本地时间的子符串,等效于 asctime(localtime(seconds))
        参数:secs 表示时间戳,默认为 None
        返回值:一个字符串

    gmtime([secs])
        功能:将时间戳转换为UTC时区的结构化时间 struct_time
        参数:secs 表示时间戳,若不提供该参数,则默认为当前时刻的时间戳
        返回值:时间元组 struct_time

    localtime([secs])
        功能:将时间戳转换为当地的结构化时间 struct_time
        参数:secs 表示时间戳,若不提供该参数,则默认为当前时刻的时间戳
        返回值:时间元组 struct_time

    mktime(struct_time)
        功能:将结构化的时间转化为时间戳,相当于 localtime 的反函数
        参数:struct_time 表示一个结构化的时间
        返回值:一个时间戳

    strftime(format[, struct_time])
        功能:将结构化的时间转化为格式化的时间字符串
        参数:format 是一个表示时间格式的字符串;struct_time 表示结构化的时间,若不提供该参数,则默认为当前时刻的结构化时间
        返回值:一个时间字符串

    strptime(time_str[, format])
        功能:将格式化的时间字符串转化为结构化的时间
        参数:time_str 表示时间字符串;format 表示时间字符串的格式,若不提供该参数,则默认其值为:'%a %b %d %H:%M:%S %Y'
        返回值:结构化时间 struct_time

    sleep(secs)
        功能:使线程执行暂停(睡眠)给定的秒数
        参数:secs 表示秒数,可以是浮点数
        返回值:None

    perf_counter()
        功能:以小数秒为单位返回性能计数器的值,包括睡眠的时间,且是系统范围内的
        参数:无
        返回值:一个浮点数

    perf_counter_ns()
        功能:与 perf_counter() 相似,但单位是纳秒
        参数:无
        返回值:一个整数

    process_time()
        功能:以小数秒为单位返回当前进程的系统和用户 CPU 时间总和的值,不包括睡眠时间,且是进程范围内
        参数:无
        返回值:一个浮点数

    process_time_ns()
        功能:与 process_time() 相似,但单位是纳秒
        参数:无
        返回值:一个整数

    monotonic()
        功能:以小数秒为单位返回单调时钟(即不能倒退的时钟)的值
        参数:无
        返回值:一个浮点数

    monotonic_ns()
        功能:与 monotonic() 相似,但以纳秒为单位
        参数:无
        返回值:一个整数

    thread_time()
        功能:以小数秒为单位返回当前线程的系统和用户 CPU 时间之和的值,不包括睡眠时间,且特定于线程
        参数:无
        返回值:一个浮点数

    thread_time_ns()
        功能:与 thread() 相似,但单位是纳秒
        参数:无
        返回值:一个整数
相关标签: Python time