python如何使用time模块处理时间?
admin
2023-02-14 10:40:03
0

1.时间类型划分

1.1 导入time模块
import time
1.2 time模块

time模块那么多方法,如何区分?
根据时间格式划分为:

a)时间戳
b)struct_time格式(时间格式,可以轻松获取年月日,时分秒各个值)
c)字符串时间(可读性好)

下面逐一详解(以下操作在jupyter,python3.x版本操作)

2 时间戳处理

跟着感觉走:

2.1 获取时间戳

什么是时间戳?就是一个大的浮点数,计算机用来记录时间用的,大概好像是1970年的某年月开始的。
获取时间戳正确姿势:

time.time():获取时间戳,返回浮点数,单位秒
import time
t=time.time()
t

结果:

1582968461.3394606

获取时间戳,对我们来说意义不大,怎么获取对应的年与日时分秒?

2.2 时间戳转struct_time:

struct_time是一个对象,类似元组,主要包含时间信息

属性说明
tm_year
tm_mon月[01,31]
tm_mday
tm_hour小时 [ 00,12]
tm_min分钟 [00,59]
tm_sec秒 [00,59]
tm_wday星期 [0,6]
tm_yday从每年的1月1日开始的天数
tm_isdst夏令时(暂时忽略)

有了这个结构,获取时间太easy,如何获取?

方法:time.localtime([sec])
#获取当前时间
st = time.localtime()
#获取年
print(st.tm_year)
#获取小时
print(st.tm_hour)
#时间戳转struct_time
t=1582968461
print(time.localtime(t))

输出结果:

2020
17
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=17, tm_min=27, tm_sec=41, tm_wday=5, tm_yday=60, tm_isdst=0)
2.3 时间戳转时间字符串

time.ctime(seconds):将时间戳转成可读字符串

#获取当前时间
print(time.ctime())
#时间戳转字符串
t=1582968461
print(time.ctime(t))

输出结果:

Sat Feb 29 17:46:18 2020
Sat Feb 29 17:27:41 2020

3 struct_time处理

主要下面几个操作:

方法说明
time.mktime(tuple)struct_time转时间戳
time.asctime([tuple])struct_time转时间日期字符串
time.strftime(format[, tuple])struct_time转指定时间格式字符串

先来看前两个操作:

#获取当前时间
st = time.localtime()
#struct_time转时间戳
print(time.mktime(st))
#struct_time转字符串
print(time.asctime(st))

输出结果:

1582974399.0
Sat Feb 29 19:06:39 2020

如何将struct_time转自定义格式字符串?
time.strftime(format[, tuple]):format为指定格式,tuple为struct_time对象
format格式可以通过help(time.strftime)查看,主要格式如下:

格式说明
%Y年份:[xxxx]
%y年份:[xx],不带世纪
%m月份:[01,12]
%d日:[01,,3]
%H小时:[00,23]
%M分:[00,59]
%S秒:[00,59]
%x日期:[月/日/年份]
%X时间:[时:分:秒]

例子:

st = time.localtime()
#年-月-日
print(time.strftime('%Y-%m-%d', st))
#时-分-秒
print(time.strftime('%H-%M-%S',st))
#年-月-日 时:分:秒
print(time.strftime('%Y-%m-%d %H:%M:%S', st))

结果:

2020-02-29
19-19-31
2020-02-29 19:19:31

字符换时间转时间

比如将"2020-02-29 19:19:31"转成struct_time或者时间戳如何操作?
strptime(string, format),与strftime相反,具体操作:

s = '2020-02-29 19:19:31'
st = time.strptime(s,'%Y-%m-%d %H:%M:%S')
print(st)

输出结果:

time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=19, tm_min=19, tm_sec=31, tm_wday=5, tm_yday=60, tm_isdst=-1)

以上就是时间转换主要方法。

总结:

时间戳转字符串流程
#获取当前时间错
t = time.time()
print(t)
#转成struct_time
st = time.localtime(t)
print(st)
#st转自定义格式字符串
s = time.strftime('%Y-%m-%d %H:%M:%S', st)
print(s)

输出结果:

1582975571.0656374
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=19, tm_min=26, tm_sec=11, tm_wday=5, tm_yday=60, tm_isdst=0)
2020-02-29 19:26:11
字符串转时间戳
s = '2020-02-29 19:26:11'
#字符串转struct_time
st = time.strptime(s,'%Y-%m-%d %H:%M:%S')
print(st)
#struct_time转时间戳
t = time.mktime(st)
print(t)

结果:

time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=19, tm_min=26, tm_sec=11, tm_wday=5, tm_yday=60, tm_isdst=-1)
1582975571.0

记住这几个操作,能够满足大部分需求。

相关内容

热门资讯

追光引路人—记国家级线上线下混... 人物名片:吴建丽,教授,黄河科技学院医学部教师。主持国家级线上线下混合式一流课程1门、河南省线上线下...
加总理表态:若谈判破裂,会对美... 据凤凰卫视报道,7月23日,加拿大总理卡尼与各省省长和地区领导人举行会议,商讨应对美国最新一轮关税威...
从北京望中东:和平,虽远在中国... ◆笔者参与的分论坛“维护中东和平:挑战与出路”正在进行中。今年7月举行的第十四届世界和平论坛上,中东...
巨大冲击!美国AI“闭源高价售... 日本计算机社会学专家塚越健司7月24日发表题为《中国AI“Kimi K3”引发巨大冲击——撼动美国A...
人民锐评:中国籍数学家首获全球... 历史性的突破!日前,第二十一届菲尔兹奖得主名单揭晓,北大2007级本科校友王虹、邓煜双双获奖,无数网...
深度专访|网易智企段毓铮:不敢... 企业AI的商业化,难点在于让客户敢用、会用、用得有效果。在WAIC现场,搜狐AI邀请到网易智企副总经...
来论|从“菲尔兹奖”,看见科技... 王虹、邓煜分别凭借在调和分析与几何测度论、偏微分方程与数学物理领域的突破性工作,共同荣获2026年菲...
当清洁机器人爬上窗户,能否开启... 过去十年,清洁机器人的故事,几乎都发生在地面上。 扫地、拖地、洗地,从随机碰撞到激光导航,从人工洗抹...
冰箱通电发烫压缩不启动不制冷什... 1、很有可能是因为冰箱的压缩机内高压输出缓冲管出现了断裂,造成高压管不排气,低压管不吸气的这种状况,...
冰箱能通电但是不制冷什么问题 1、电源问题先检查冰箱的电源,看电源的连接是否正常,插头是否通电,插稳。插好插头之后,可以看一下冰箱...