python-----time模块

一、time—时间的访问和转换

该模块提供了各种与时间相关的函数。相关功能还可以参阅 datetimecalendar 模块。

尽管所有平台皆可使用此模块,但模块内的函数并非所有平台都可用。此模块中定义的大多数函数的实现都是调用其所在平台的C语言库的同名函数。因为这些函数的语义可能因平台而异,所以使用时最好查阅对应平台的相关文档。

二、常用函数

  • time.asctime([t])

    转换由 gmtime()localtime() 所返回的表示时间的元组或 struct_time 为以下形式的字符串: 'Sun Jun 20 23:21:05 1993'。 日期字段的长度为两个字符,如果日期只有一个数字则会以零填充,例如: 'Wed Jun 9 04:26:40 1993'

    如果未提供 t,则会使用 localtime() 所返回的当前时间。 asctime() 不会使用区域设置信息(简单理解,未提供参数,返回当前时间,只是显示时间的格式不同)

    能得到时间元组对象 time模块

    print(time.localtime()) # 中国 在东八区   
    print(time.gmtime()) # 获取格林时间 0 时区
    

    image-20210111101044461

    print(time.asctime()) # Mon Jan 11 10:12:40 2021
    print(time.asctime(time.gmtime())) # Mon Jan 11 02:12:40 2021
    
  • time.ctime([secs])

    转换以距离初始纪元的秒数表示的时间为以下形式的字符串: 'Sun Jun 20 23:21:05 1993' 代表本地时间。 日期字段的长度为两个字符,如果日期只有一个数字则会以零填充,例如: 'Wed Jun 9 04:26:40 1993'

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

    print(time.ctime(0)) # 切换到 1970
    print(time.ctime())  # 获取本地当前时间 等价 time.asctime(time.localtime())
    
  • time.mktime(t)

    这是 localtime() 的反函数,它表示 local 的时间,而不是 UTC 。它返回一个浮点数,以便与 time() 兼容。如果输入的值,不能表示有效时间则抛出OverflowErrir 或 ValueError

    t为 struct_time 或者完整的 9 元组,

    # 转化为毫秒值
    print(time.mktime(time.localtime())) # 1610332681.0 
    
  • time.sleep(secs)

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

    此外,由于系统需要调度其他活动,实际暂停时长也可能比请求的时间长

  • time.strftime(format[, t])

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

    0是时间元组中任何位置的合法参数;如果它通常是非法的,则该值被强制改为正确的值。

    以下指令可以嵌入 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 。
    %S十进制数 [00,61] 表示的秒。
    %U十进制数 [00,53] 表示的一年中的周数(星期日作为一周的第一天)作为。在第一个星期日之前的新年中的所有日子都被认为是在第0周。
    %w十进制数 [0(星期日),6] 表示的周中日。
    %W十进制数 [00,53] 表示的一年中的周数(星期一作为一周的第一天)作为。在第一个星期一之前的新年中的所有日子被认为是在第0周。
    %x本地化的适当日期表示。
    %X本地化的适当时间表示。
    %y十进制数 [00,99] 表示的没有世纪的年份。
    %Y十进制数表示的带世纪的年份。
    %z时区偏移以格式 +HHMM 或 -HHMM 形式的 UTC/GMT 的正或负时差指示,其中H表示十进制小时数字,M表示小数分钟数字 [-23:59, +23:59] 。
    %Z时区名称(如果不存在时区,则不包含字符)。
    %%字面的 '%' 字符。
  • time.strptime(string[, format])

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

    format

    format 参数使用与 strftime() ;使用的指令相同的指令。它默认为匹配 ctime() 返回格式的 "%a %b %d %H:%M:%S %Y"`` 。如果 *string\*不能根据 \*format* 解析,或者解析后它有多余的数据,则引发 ValueError 。当无法推断出更准确的值时,用于填充任何缺失数据的默认值是(1900, 1, 1, 0, 0, 0, 0, 1, -1) 。

    print(time.strptime("2020-10-21","%Y-%m-%d")) # 返回struct_time元组对象
    
  • 【注】:stringformat 都必须是字符串。**

strftime,strptime综合运用

time.strftime(format[, t]),time.strptime(string[, format])

# 有效时间字符串  ---- > 元组对象
print(time.strptime("2020-10-21","%Y-%m-%d")) # 返回struct_time元组 对象

# 将时间元组对象格式化 --->  自己想要的时间字符格式
print(time.strftime("%Y年%m月%d日 %H:%M:%S",time.localtime())) # 返回的是 str类型
# 不指定第二个参数,默认是 time.localtime()
print(time.strftime("%Y年%m月%d日 %H:%M:%S"))


# 例如 后面的类 创建指的的时间,调用 timetuple() 方法即可以获取时间元组对象,可以利用 time.mktime() 转化毫秒值
'''
① date类:处理年、月、日;
② time类:处理时、分、秒;
③ datetime类:date类和time类的综合,处理年、月、日、时、分、秒;
④ timedelta类:主要用于做时间加减的;
⑤ tzinfo类:时区类
'''
d=date(2020,2,10)
print(d.timetuple())

# 使用time.mktime()转化毫秒值
print(time.mktime(d.timetuple())) # 1581264000.0


# 毫秒值也可以转换回去,利用date的类方法
seconds= time.mktime(d.timetuple())
print(date.fromtimestamp(seconds))  # 2020-02-10

三、time.struct_time对象

print(time.localtime())
'''
out
time.struct_time(tm_year=2021, tm_mon=1, tm_mday=11, tm_hour=10, tm_min=44, tm_sec=16, tm_wday=0, tm_yday=11, tm_isdst=0)
'''

常用的属性如下

索引属性
0tm_year(例如,1993)
1tm_monrange [1, 12]
2tm_mdayrange [1, 31]
3tm_hourrange [0, 23]
4tm_minrange [0, 59]
5tm_secrange [0, 61]; 见 strftime() 介绍中的 (2)
6tm_wdayrange [0, 6] ,周一为 0
7tm_ydayrange [1, 366]
8tm_isdst0, 1 或 -1;如下所示
N/Atm_zone时区名称的缩写
N/Atm_gmtoff以秒为单位的UTC以东偏离

参考python官方文档:https://docs.python.org/zh-cn/3/library/time.html?highlight=time#time.struct_time

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值