python的time模块常用方法
Posted pal-duan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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类型的时间转换为float类型的秒数。
参数:struct_time类型的时间。
返回值:float类型的秒数。
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()类似,但返回值是纳秒。
以上是关于python的time模块常用方法的主要内容,如果未能解决你的问题,请参考以下文章