Python标准库之——time模块

前言:继上一篇学完Python,我决定熬夜整理这篇总结…,本篇总结一下Python中常用的time标准库用法,通过Demo程序来加深理解

time模块

time模块提供了各种时间相关的函数。
关于time模块的详细介绍见官方文档:time — 时间的访问和转换(参考)

Demo实例

先写个小的Demo程序展示一下time模块的相关用法,之后再做解释

'''
@Author Caso_卡索
@Date 2020-8-23 15:12
@Func 使用 time 模块显示当前时间
'''
import time

functions = {
    0:"gmtime(0)返回epoch时间开始的点的struct_time",
    1:"time()返回当前时间戳",
    2:"localime()返回struct_time类型的当地时间",
    3:"mktime()返回一个浮点数时间戳",
    4:"asctime()返回格式化后的时间字符串",
    5:"ctime()返回格式化后的时间字符串",
    6:"strftime()返回指定格式化后的时间字符串",
    7:"strptime()返回指定格式化解析后的struct_time"
}

def showcurtime():
    print('%-38s%s'%(functions[0], time.gmtime(0)))
    curtime = time.time()
    print('%-40s%s'%(functions[1], curtime))
    localtime = time.localtime(curtime)
    print('%-38s%s'%(functions[2], localtime))
    print('%-37s%s'%(functions[3], time.mktime(localtime)))
    print('%-35s%s'%(functions[4], time.asctime(localtime)))
    print('%-35s%s'%(functions[5], time.ctime(curtime)))
    formatstr = "%Y-%m-%d %H:%M:%S"
    formattime = time.strftime(formatstr, localtime)
    print('%-33s%s'%(functions[6], formattime))
    print('%-36s%s'%(functions[7], time.strptime(formattime, formatstr)))

if __name__ == '__main__':
    showcurtime()

time

常用参数

其中的序号对应于Demo程序中的functions字典序号

序号常用参数功能
0time.gmtime(0)将以自 epoch 开始的秒数表示的时间转换为 UTC 的 struct_time ,其中 dst 标志始终为零
1time.time()返回以浮点数表示的从 epoch 开始的秒数的时间值
2time.localtime([secs]与 gmtime() 相似但转换为当地时间
3time.mktime(t)这是 localtime() 的反函数,它返回一个浮点数,以便与 time() 兼容
4time.asctime([t])转换由 gmtime() 或 localtime() 所返回的表示时间的元组或 struct_time 为以下形式的字符串: ‘Sun Jun 20 23:21:05 1993’。
5time.ctime([secs])转换以距离初始纪元的秒数表示的时间为以下形式的字符串: ‘Sun Jun 20 23:21:05 1993’ 代表本地时间。
6time.strptime(string[, format])根据格式解析表示时间的字符串。 返回值为一个被 gmtime() 或 localtime() 返回的 struct_time
7time.strftime(format[, t])转换一个元组或 struct_time 表示的由 gmtime() 或 localtime() 返回的时间到由 format 参数指定的字符串

该表中,epoch表示时间开始的点,并且取决于平台。对于Unix, epoch 是1970年1月1日00:00:00(UTC)。

struct_time结构

time.struct_time是一个带有named tuple接口的对象:可以通过索引和属性名访问值。

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

对于属性tm_isdst在调用 mktime() 时, tm_isdst 可以在夏令时生效时设置为1,而在夏令时不生效时设置为0。 值-1表示这是未知的,并且通常会导致填写正确的状态。

format字符串

format 必须是一个字符串。如果 t(struct_time)中的任何字段超出允许范围,则引发 ValueError(操作或函数接收到的值不适合)
以下是一些可以嵌入 format 字符串中的指令:

指令含义
%d十进制数 [01,31] 表示的月中日
%H十进制数 [00,23] 表示的小时(24小时制)
%I十进制数 [01,12] 表示的小时(12小时制)
%j十进制数 [001,366] 表示的年中日
%m十进制数 [01,12] 表示的月
%M十进制数 [00,59] 表示的分钟
%S十进制数 [00,61] 表示的秒
%U十进制数 [00,53] 表示的一年中的周数(星期日作为一周的第一天),在第一个星期日之前的新年中的所有日子都被认为是在第0周
%w十进制数 [0(星期日),6] 表示的周中日
%W十进制数 [00,53] 表示的一年中的周数(星期一作为一周的第一天)作为。在第一个星期一之前的新年中的所有日子被认为是在第0周
%y十进制数 [00,99] 表示的没有世纪的年份
%Y十进制数表示的带世纪的年份
%a本地化的缩写星期中每日的名称
%A本地化的星期中每日的完整名称
%b本地化的月缩写名称
%B本地化的月完整名称
%c本地化的适当日期和时间表示
%p本地化的 AM 或 PM
%x本地化的适当日期表示
%X本地化的适当时间表示
%z时区偏移以格式 +HHMM 或 -HHMM 形式的 UTC/GMT 的正或负时差指示,其中H表示十进制小时数字,M表示小数分钟数字 [-23:59, +23:59]
%Z时区名称(如果不存在时区,则不包含字符)
%%字面的 ‘%’ 字符

注释:

  1. 当与 strptime() 函数一起使用时,如果使用 %I 指令来解析小时, %p 指令只影响输出小时字段。
  2. 范围真的是 0 到 61 ;值 60 在表示 leap seconds 的时间戳中有效,并且由于历史原因支持值 61 。
  3. 当与 strptime() 函数一起使用时, %U 和 %W 仅用于指定星期几和年份的计算。

作者: Caso_卡索
博客: https://blog.csdn.net/xiaoma_2018
一个独立、不甘于现状的程序员,喜欢的朋友点赞支持一下,在此感谢,Python专栏后续持续更新…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Caso_卡索

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值