python的time模块常用方法

time模块

这个模块提供各种与时间相关的函数。相关功能,可以参见datetime和calendat模块。
此模块并非所有平台提供所有功能,因平台而异
以下是对一些术语和惯例的解释

  • 初始时间因平台而异。对于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类型的时间。
注:ormat参数使用的指令与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()类似,但返回值是纳秒。

posted @ 2019-03-20 23:17  pal-duan  阅读(54074)  评论(1编辑  收藏  举报