python模块详解 | time

time

这个模块提供各种与时间相关的函数。

以下是对一些术语和惯例的解释

  • 初始时间因平台而异。对于Unix平台,初始时间是1970,01,01,00:00:00(UTC)。查看每个操作平台的初始时间可以使用time.gmtime(0)函数。
  • 在所有POSIX平台上,从初始时间以来的秒数都不包括闰秒
  • 该模块中的函数可能不处理初始时间以前和遥远未来的日期和时间,未来的分界点对于32位操作系统是2038年。
  • UTC是协调世界时(以前称为格林尼治标准时间,GMT)。缩写UTC不是一个错误,而是英语和法语之间的妥协。
  • DST是夏令时,在一年中的某些时候,时区通常会调整一个小时。DST规则是神奇的(由当地法律决定),每年都在变化。
  • 各种实时函数的精度可能低于表示其值或参数的单位所建议的精度。

时间类型的格式

struct_time类型

它是一个具有命名元组接口的对象:可以通过索引和属性名访问值。存在以下值:

  • index—attribute—values
  • 0—tm_year—年份
  • 1—tm_mon—月份range[1,12]
  • 2—tm_mday—天数range[1,31]
  • 3—tm_hour—小时range[0,23]
  • 4—tm_min—分钟range[0,59]
  • 5—tm_sec—秒数range[0,61]
  • 6—tm_wday—星期range[0,6],0是星期日
  • 7—tm_yday—一年中的一天range[1,366]
  • 8—tm_isdst—tm_isdst可以在夏令时生效时设置为1,而在夏令时不生效时设置为0。值-1表示这是未知的。
  • N/A—tm_zone—时区名称的缩写
  • N/A—tm_gmtoff—协调世界时以东偏移,以秒为单位.

例如,time.struct_time(tm_year=2019, tm_mon=3, tm_mday=20, tm_hour=23, tm_min=11, tm_sec=33, tm_wday=2, tm_yday=79, tm_isdst=0)

格式化时间类型

例如,‘Wed Mar 20 23:12:26 2019’

时间戳类型

从初始时间到指定时间的秒数。 例如,time.time()得到的float类型的秒数

时间类型之间的相互转换

函数

time.asctime([t])

  • 作用: 将struct_time类型的时间转换为如下形式:‘Sun Jun 20 23:21:05 1993’
  • 参数: struct_time类型或tuple类型的时间,不填参数的话默认为time.localtime()得到的时间。
  • 返回值:‘Sun Jun 20 23:21:05 1993’类型的时间。

time.pthread_getcpuclockid(thread_id)

  • 作用: 返回指定线程id的线程特定CPU时间时钟的clk_id。
  • 参数: 线程的id,可以使用threading.get_ident()或线程的ident属性得到线程id。
  • 返回值: clk_id
  • 注意: 只有Unix可用

time.clock_getres(clk_id)–>float

  • 作用: 返回指定时钟clk_id的分辨率(精度)。有关clk_id的可接受值列表,请参考时钟ID常量。
  • 注意: 只用Unix可用

time.clock_gettime_ns(clk_id)–>int

  • 作用: 与clock_gettime()类似,但是返回的时间是纳秒。
  • 注意: 只用Unix可用

time.clock_settime(clk_id,time:float)

  • 作用: 设置指定时钟clk_id的时间。目前,CLOCK_REALTIME是clk_id惟一接受的值。
  • 注意: 只用Unix可用

time.clock_settime_ns(clk_id,time:int)

  • 作用: 与clock_settime()类似,但是使用纳秒设置时间。
  • 注意: 只用Unix可用

time.ctime([secs])

  • 作用: 将时间戳的时间转换为表示本地时间的字符串。如果没有提供secs或没有提供secs,则使用time()返回的当前时间。
  • 参数: 时间戳类型的时间,如果不填默认为当前时间的时间戳。
  • 返回值: 格式化类型的时间,例如’Mon Mar 18 23:56:35 2019’。

time.get_clock_info(name)

  • 作用: 以命名空间对象的形式获取指定时钟的信息。
  • 参数:
    • clock: time.clock()
    • monotonic: time.monotonic()
    • perf_counter: time.perf_counter()
    • process_time: time.process_time()
    • tread_time: time.tread_time()
    • time: time.time()
  • 返回值:
    • adjustable:如果时钟可以自动更改(例如由NTP守护进程)或由系统管理员手动更改,则为True,否则为False。
    • implementation:用于获取时钟值的底层C函数的名称。有关可能的值,请参考时钟ID常量。
    • monotonic:如果时钟不能倒转,则为真,反之为假。
    • resolution:时钟的分辨率(以秒为单位)(浮点数)。
    • 例如,namespace(adjustable=False, implementation=‘QueryPerformanceCounter()’, monotonic=True, resolution=3.775811922277177e-07)

time.gmtime([sec])

  • 作用: 将时间戳类型的时间转换为UTC中的struct_time,其中dst标志始终为零。
  • 参数: 时间戳类型的时间,如果没有提供secs或没有提供secs,则使用time()返回的当前时间。
  • 返回值: struct_time类型的时间

time.localtime([sec])

  • 作用: 就像time.gmtime(),但是转换为本地时间。当dst应用于给定的时间时,dst标志被设置为1。
  • 参数: 时间戳类型的时间,如果没有提供secs或没有提供secs,则使用time()返回的当前时间。
  • 返回值: struct_time类型的时间

time.mktime(t)

  • 作用: 将struct_time类型的时间转换为时间戳类型。
  • 参数: struct_time类型的时间。
  • 返回值: 时间戳类型。

time.monotonic()–>float

  • 作用: 返回一个单调时钟的值(以分数秒为单位),即一个不能倒退的时钟。时钟不受系统时钟更新的影响。返回值的引用点是未定义的,因此只有连续调用的结果之间的差异是有效的。

time.monotonic_ns()–>int

  • 作用: 和time.monotonic()类似,但返回值为纳秒。

time.perf_counter()–>float

  • 作用: 返回性能计数器的值(以小数秒为单位),即具有最高可用分辨率来测量短时间的时钟。它确实包括在睡眠期间所花费的时间,并且是全系统的。返回值的引用点是未定义的,因此只有连续调用的结果之间的差异是有效的。

time.perf_counter_ns()–>int

  • 作用: 和time.perf_counter()类似,但返回值为纳秒。

time.process_time()–>float

  • 作用: 返回当前进程的系统和用户CPU时间之和(以小数秒为单位)。它不包括睡眠时间。根据定义,它是过程范围的。返回值的引用点是未定义的,因此只有连续调用的结果之间的差异是有效的。

time.process_time_ns()–>int

  • 作用: 和time.process_time()类似,但返回值为纳秒。

time.sleep(secs)

  • 作用: 在给定的秒数内挂起调用线程的执行。
  • 参数: 秒数,参数可以是一个浮点数,表示更精确的睡眠时间。

time.strftime(format[,t])

  • 作用: 将struct_time类型的时间转换为format参数指定格式的字符串。

  • 参数:

    • format:指定转换时间的字符串格式。
    • t:struct_time类型的时间,如果不填默认为当前时间(即time.localtime()返回的时间)
  • 返回值: 指定格式的字符串。

    注: 以下指令可以嵌入格式字符串中。它们显示时没有可选的字段宽度和精度规范。

    • %a–>星期的缩写
    • %A–>完整的星期的名称
    • %b–>月份的缩写
    • %B–>完整的月份名称
    • %c–>‘Wed Mar 20 21:40:19 2019’格式
    • %d–>十进制数格式的日期[01,31]
    • %H–>小时(24小时制) 十进制数[00,23]
    • %I–>小时(12小时制) 十进制数[01,12]
    • %j–>一年中的一天(十进制数)[001,366]
    • %m–>月份(十进制数)[01,12]
    • %M–>分钟数(十进制数)[00,59]
    • %p–>AM或PM
    • %S–>秒数[00,59]
    • %U–>一年中的周数(星期日作为一周的第一天)十进制数[00,53],第一个星期日之前的所有日子被认为是第0周。
    • %w–>星期数(十进制数)[0,6]
    • %W–>一年中的周数(星期一作为一周的第一天)十进制数[00,53],第一个星期一之前的所有日子被认为是第0周。
    • %x–>日期表示(月/日/不带世纪的年份)例如'03/20/19’
    • %X–>时间表示(时:分:秒)例如'21:56:34’
    • %y–>不带世纪的年份(十进制数)[00,99]
    • %Y–>带世纪的年份(十进制数)
    • %z–>时区偏移指示与格式+ HHMM或-HHMM形式的UTC / GMT的正或负时差,其中H表示十进制小时数字,M表示小数分钟数字[-23:59,+ 23:59]。
    • %Z–>时区名称,例如’中国标准时间’
    • %%–>’%‘字符。

time.strptime(string[,format])

  • 作用: 根据格式解析表示时间的字符串。

  • 参数:

    • string:字符串类型的时间。
    • format:提供字符串类型的时间的格式。
  • 返回值: struct_time类型的时间。

    **注:**format参数使用的指令与strftime()使用的指令相同;它默认为“%a %b %d %H:%M:%S %Y”,与ctime()返回的格式匹配。如果字符串不能按照格式进行解析,或者解析后有多余的数据,则会引发ValueError。当无法推断出更精确的值时,用于填充任何缺失数据的默认值是(1900、1、1、0、0、0、0、0、1、-1)。字符串和格式都必须是字符串。

time.time()–>float

  • 作用: 以秒为单位以浮点数返回历元之后的时间。

time.thread_time()–>float

  • 作用: 返回当前线程的系统和用户CPU时间之和(以小数秒为单位)。它不包括睡眠时间。它的定义是特定于线程的。返回值的引用点未定义,因此只有同一线程中连续调用的结果之间的差异是有效的。

time.thread_time_ns()–>int

  • 作用: 和time.thread_time()类似,但是返回值是纳秒。

time.time_ns()–>int

  • 作用: 和time.time()类似,但返回值是纳秒。


3868 字