标准库:time(windows用)

time.asctime([t])

转换由 gmtime() 或 localtime() 所返回的表示时间的元组或 struct_time 为以下形式的字符串: 'Sun Jun 20 23:21:05 1993'。 

如果未提供 t,则会使用 localtime() 所返回的当前时间。 asctime() 不会使用区域设置信息。

import time
print(time.asctime())
# output: Fri Apr  8 11:04:28 2022

time.ctime([secs])

转换以距离初始纪元的秒数表示的时间为以下形式的字符串: 'Sun Jun 20 23:21:05 1993' 代表本地时间。

如果 secs 未提供或为 None,则使用 time() 所返回的当前时间。 ctime(secs) 等价于 asctime(localtime(secs))。 ctime() 不会使用区域设置信息。

import time
print(time.ctime(0))
# output: Thu Jan  1 08:00:00 1970
print(time.ctime(3600))
# output: Thu Jan  1 09:00:00 1970

time.get_clock_info(name)

获取有关指定时钟的信息作为命名空间对象。 支持的时钟名称和读取其值的相应函数是:

结果具有以下属性:

  • adjustable : 如果时钟可以自动更改(例如通过NTP守护程序)或由系统管理员手动更改,则为 True ,否则为 False 。

  • implementation : 用于获取时钟值的基础C函数的名称。有关可能的值,请参阅 Clock ID 常量 。

  • monotonic :如果时钟不能倒退,则为 True ,否则为 False 。

  • resolution : 以秒为单位的时钟分辨率( float )

import time
print(time.get_clock_info('time'))
# output: namespace(implementation='GetSystemTimeAsFileTime()', monotonic=False, adjustable=True, resolution=0.015625)
print(time.get_clock_info('process_time'))
# output: namespace(implementation='GetProcessTimes()', monotonic=True, adjustable=False, resolution=1e-07)

time.gmtime([secs])

将以自 epoch 开始的秒数表示的时间转换为 UTC 的 struct_time ,其中 dst 标志始终为零。 如果未提供 secs 或为 None ,则使用 time() 所返回的当前时间。 

import time
print(time.gmtime(3600))
# output: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=1, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

time.localtime([secs])

与 gmtime() 相似但转换为当地时间。如果未提供 secs 或为 None ,则使用由 time() 返回的当前时间。当 DST 适用于给定时间时,dst标志设置为 1 。

import time
print(time.localtime())
# output: time.struct_time(tm_year=2022, tm_mon=4, tm_mday=8, tm_hour=11, tm_min=21, tm_sec=56, tm_wday=4, tm_yday=98, tm_isdst=0)

import time
print(time.localtime(3600))
# output: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=9, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

time.mktime(t)

这是 localtime() 的反函数。它的参数是 struct_time 或者完整的 9 元组(因为需要 dst 标志;如果它是未知的则使用 -1 作为dst标志),它表示 local 的时间,而不是 UTC 。它返回一个浮点数,以便与 time() 兼容。如果输入值不能表示为有效时间,则 OverflowError 或 ValueError 将被引发(这取决于Python或底层C库是否捕获到无效值)。

import time
today =(2022, 4, 8, 11, 21, 56, 4,98, 0)
print(time.mktime(today))
# output: 1649388116.0

time.monotonic() → float

(以小数表示的秒为单位)返回一个单调时钟的值,即不能倒退的时钟。

该时钟不受系统时钟更新的影响。 返回值的参考点未被定义,因此只有两次调用之间的差值才是有效的。使用 monotonic_ns() 以避免 float 类型导致的精度损失。

import time

print(time.monotonic())
# output: 273953.093

i = 2 ** 25
while i:
    i -= 1

print(time.monotonic())
# output: 273954.703

time.monotonic_ns() → int

与 monotonic() 相似,但是返回时间为纳秒数。

import time

print(time.monotonic_ns())
# output: 274320562000000

i = 2 ** 25
while i:
    i -= 1

print(time.monotonic_ns())
# output: 274322953000000

time.perf_counter() → float

(以小数表示的秒为单位)返回一个性能计数器的值,即用于测量较短持续时间的具有最高有效精度的时钟。 它会包括睡眠状态所消耗的时间并且作用于全系统范围。 返回值的参考点未被定义,因此只有两次调用之间的差值才是有效的。

time.perf_counter_ns() → int

与 perf_counter() 相似,但是返回时间为纳秒


time.process_time() → float

(以小数表示的秒为单位)返回当前进程的系统和用户 CPU 时间的总计值。 它不包括睡眠状态所消耗的时间。 根据定义它只作用于进程范围。 返回值的参考点未被定义,因此只有两次调用之间的差值才是有效的。

time.process_time_ns() → int

与 process_time() 相似,但是返回时间为纳秒。


time.sleep(secs)

调用该方法的线程将被暂停执行 secs 秒。参数可以是浮点数,以表示更为精确的睡眠时长。

import time
print('monotonic:')
print(time.monotonic())
# output: 275001.468
time.sleep(10)
print(time.monotonic())
# output: 275011.468
# 275011.468-275001.468 ≈ 10

print('perf_counter:')
print(time.perf_counter())
# output: 275012.6650191
time.sleep(10)
print(time.perf_counter())
# output: 275022.6786857
# 275022.6786857-275012.6650191 ≈ 10

print('process_time:')
print(time.process_time())
# output: 0.03125
time.sleep(10)
print(time.process_time())
# output: 0.03125
# 0.03125-0.03125 ≈ 0

time.strftime(format[, t])

转换一个元组或 struct_time 表示的由 gmtime() 或 localtime() 返回的时间到由 format 参数指定的字符串。如果未提供 t ,则使用由 localtime() 返回的当前时间。 format 必须是一个字符串。如果 t 中的任何字段超出允许范围,则引发 ValueError 。

以下指令可以嵌入 format 字符串中。它们显示时没有可选的字段宽度和精度规范,并被 strftime() 结果中的指示字符替换:

指令

含意

备注

%a

本地化的缩写星期中每日的名称。

%A

本地化的星期中每日的完整名称。

%b

本地化的月缩写名称。

%B

本地化的月完整名称。

%c

本地化的适当日期和时间表示。

%d

十进制数 [01,31] 表示的月中日。

%H

十进制数 [00,23] 表示的小时(24小时制)。

%I

十进制数 [01,12] 表示的小时(12小时制)。

%j

十进制数 [001,366] 表示的年中日。

%m

十进制数 [01,12] 表示的月。

%M

十进制数 [00,59] 表示的分钟。

%p

本地化的 AM 或 PM 。

(1)

%S

十进制数 [00,61] 表示的秒。

(2)

%U

十进制数 [00,53] 表示的一年中的周数(星期日作为一周的第一天)。 在第一个星期日之前的新年中的所有日子都被认为是在第 0 周。

(3)

%w

十进制数 [0(星期日),6] 表示的周中日。

%W

十进制数 [00,53] 表示的一年中的周数(星期一作为一周的第一天)。 在第一个星期一之前的新年中的所有日子被认为是在第 0 周。

(3)

%x

本地化的适当日期表示。

%X

本地化的适当时间表示。

%y

十进制数 [00,99] 表示的没有世纪的年份。

%Y

十进制数表示的带世纪的年份。

%z

Time zone offset indicating a positive or negative time difference from UTC/GMT of the form +HHMM or -HHMM, where H represents decimal hour digits and M represents decimal minute digits [-23:59, +23:59]. 1

%Z

Time zone name (no characters if no time zone exists). Deprecated. 1

%%

字面的 '%' 字符。

注释:

  1. 当与 strptime() 函数一起使用时,如果使用 %I 指令来解析小时, %p 指令只影响输出小时字段。

  2. 范围真的是 0 到 61 ;值 60 在表示 leap seconds 的时间戳中有效,并且由于历史原因支持值 61 。

  3. 当与 strptime() 函数一起使用时, %U 和 %W 仅用于指定星期几和年份的计算。

import time
print(time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime()))
# output: Fri, 08 Apr 2022 04:35:49 +0000

time.strptime(string[, format])

根据格式解析表示时间的字符串。 返回值为一个被 gmtime() 或 localtime() 返回的 struct_time 。

format 参数使用与 strftime() 相同的指令。 它默认为匹配 ctime() 所返回的格式 "%a %b %d %H:%M:%S %Y"` 。 如果 string 不能根据 format 来解析,或者解析后它有多余的数据,则会引发 ValueError。 

import time
print(time.strptime("30 Nov 00", "%d %b %y") )
# output: time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)


class time.struct_time

返回的时间值序列的类型为 gmtime() 、 localtime() 和 strptime() 。它是一个带有 named tuple 接口的对象:可以通过索引和属性名访问值。 存在以下值:

索引

属性

0

tm_year

(例如,1993)

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]; 见 strftime() 介绍中的 (2)

6

tm_wday

range [0, 6] ,周一为 0

7

tm_yday

range [1, 366]

8

tm_isdst

0, 1 或 -1;如下所示

N/A

tm_zone

时区名称的缩写

N/A

tm_gmtoff

以秒为单位的UTC以东偏离


time.time() → float

返回以浮点数表示的从 epoch 开始的秒数的时间值。

time.time_ns() → int

与 time() 相似,但返回时间为用整数表示的自 epoch 以来所经过的纳秒数。

import time
print(time.time() )
# output: 1649392679.9409678


time.thread_time() → float

(以小数表示的秒为单位)返回当前线程的系统和用户 CPU 时间的总计值。 它不包括睡眠状态所消耗的时间。 根据定义它只作用于线程范围。 返回值的参考点未被定义,因此只有两次调用之间的差值才是有效的。

time.thread_time_ns() → int

与 thread_time() 相似,但返回纳秒时间。

import time

print('thread_time:')
print(time.thread_time())
# output: 0.03125

i = 2 ** 25
while i:
    i -= 1
print(time.thread_time())
# output: 1.65625

time.sleep(10)
print(time.thread_time())
# output: 1.65625

时区常量

time.altzone

本地DST时区的偏移量,以UTC为单位的秒数,如果已定义。如果当地DST时区在UTC以东(如在西欧,包括英国),则是负数。 只有当 daylight 非零时才使用它。 见下面的注释。

time.daylight

如果定义了DST时区,则为非零。 见下面的注释。

time.timezone

本地(非DST)时区的偏移量,UTC以西的秒数(西欧大部分地区为负,美国为正,英国为零)。 见下面的注释。

time.tzname

两个字符串的元组:第一个是本地非DST时区的名称,第二个是本地DST时区的名称。 如果未定义DST时区,则不应使用第二个字符串。 见下面的注释。

注解 

对于上述时区常量( altzone 、 daylight 、 timezone 和 tzname ),该值由模块加载时有效的时区规则确定,或者最后一次 tzset() 被调用时,并且在过去的时间可能不正确。建议使用来自 localtime() 结果的 tm_gmtoff 和 tm_zone 来获取时区信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值