#在代码中,我们常常需要和时间打交道。在Python中,与时间处理有关的模块包括time、datetime以及calendar.
#在Python中,通常用时间戳、格式化的时间字符串和元组3中方式表示时间。下面分别进行讲解。
1、时间戳
#通常,时间戳(timestamp)表示从1970年1月1日00时00分00秒开始按秒计算的偏移量,也就是从1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起到现在的总毫秒数。
#时间戳是一个经加密后形成的凭证文档,包括3部分:
①:需加时间戳的文件的摘要(digest)。
②:DTS收到文件的日期和时间。
③:DTS的数字签名。
#一般来说,时间戳产生的过程为:用户首先将需要加时间戳的文件用Hash编码加密形成摘要,然后将该摘要发送到DTS,DTS加入收到文件摘要的日期和时间信息后再对该文件加密(数字签名),最后发送回用户。
#书面签署文件的时间是由签署人自己写上的,而数字时间戳是由认真单位DTS添加的,以DTS收到文件的时间为依据。
#Python3.5中支持的最大时间戳为32535244799(3001-01-01 15:59:59).
2、时间格式化符号
#在Python中,一般用下表所示的格式化符号对时间进行格式化。
格式
|
含义
|
备注
|
%a
|
本地简化星期名称
|
|
%A
|
本地完整星期名称
|
|
%b
|
本地简化月份名称
|
|
%B
|
本地完整月份名称
|
|
%c
|
本地相应的日期和时间表示
|
|
%d
|
一个月中的第几天(01-31)
|
|
%H
|
一天中的第几个小时(24小时制,00-23)
|
|
%I
|
第几个小时(12小时制,01-12)
|
|
%j
|
一年中的第几天(001-366)
|
|
%m
|
月份(01-12)
|
|
%M
|
分钟数(00-59)
|
|
%p
|
本地AM或PM的相应符
|
①
|
%S
|
秒(01-61)
|
②
|
%U
|
一年中的星期数(取值00-53,星期天为一星期的开始),第一个星期
天之前的所有天数都放在第0周
|
③
|
%w
|
一个星期中的第几天(0-6,0是星期天)
|
③
|
%W
|
和%U基本相同,不同的是%W以星期一为一个星期的开始
|
|
%x
|
本地相应日期
|
|
%X
|
本地相应时间
|
|
%y
|
去掉世纪的年份(00-99)
|
|
%Y
|
完整的年份
|
|
%Z
|
时区的名字(如果不存在为空字符)
|
|
%%
|
%字符
|
|
#下面介绍上表中3个备注的含义
①:%p只有与%I配合使用才有效果。
②:文档中强调确实是0-61,而不是59,闰年秒占两秒。
③:当使用strptie()函数时,只有这一年的周数和天数确定时%U和%W才会被计算
3、struct_time元组
#struct_time元组共有9个元素:年、月、日、时、分、秒、一年中第几周、一年中第几天、是否为夏令时。
#Python函数用一个元组装起来的9组数字处理时间,也被称作struct_time元组。下表列出了这种结构的属性。
序号
|
属性
|
字段
|
值
|
0
|
tm_year
|
4位年数
|
如2008
|
1
|
tm_moon
|
月
|
1-12
|
2
|
tm_mday
|
日
|
1-31
|
3
|
tm_hour
|
小时
|
0-23
|
4
|
tm_min
|
分钟
|
0-59
|
5
|
tm_sec
|
秒
|
0-61(60或61是闰秒)
|
6
|
tm_wday
|
一周的第几日
|
0-6(0是周一)
|
7
|
tm_yday
|
一年中第几天
|
1-366(儒略历)
|
8
|
tm_isdst
|
夏令时
|
-1、0、1、-1是决定
是否位夏令时的旗帜
|
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有