栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python将时间格式进行转化(时间戳、结构化时间、字符串)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python将时间格式进行转化(时间戳、结构化时间、字符串)

应用场景:
如果说,一个用户的登录时间是:‘2021-10-28 17:23:11’ 这是一个字符串
那么,如果他续费了30天的vip,则到期的时间是多少?
所以,对于时间字符串的计算应该如何操作?

相关内容:

1:时间的类型分为以下三种:
time包下的三个函数:产生3种时间类型
:①:时间戳
time.time()
②:结构化时间
time.localtime()
③:特定结构的字符串时间
time.strftime("%Y-%m-%d %H:%M:%S")

#时间戳,用于计算

>>>time.time() 
1635420573.3312726

#结构化时间,相当于一个时间对象,可以获得其中的年、月、日

>>>time.localtime()
time.struct_time(tm_year=2021, tm_mon=10, tm_mday=28, tm_hour=19, tm_min=29, tm_sec=38, tm_wday=3, tm_yday=301, tm_isdst=0)
>>>time.localtime().tm_year
2021
>>>time.localtime().tm_mon
10
>>>time.localtime().tm_hour
19

#特定格式的字符串时间,用于展示

>>>time.strftime("%Y-%m-%d %H:%M:%S")
'2021-10-28 19:30:19'

datetime模块的函数:
产生结构化时间:

>>>datetime.datetime.now()
datetime.datetime(2021, 10, 28, 19, 40, 51, 19537)
>>>datetime.timedelta(days=3)
datetime.timedelta(days=3)
>>>datetime.timedelta(days=3).total_seconds()#可以获得天数的秒数
259200.0
>>>datetime.datetime.now().time()
datetime.time(19, 44, 52, 916426)
>>>datetime.datetime.now().date()
datetime.date(2021, 10, 28)
>>>datetime.datetime.now().hour
19

2:涉及对时间类型的转换:
字符串<----->结构化

注意:以下两个函数:一个是strip、strif,还有参数的位置。

#将字符串转化为结构化时间。
b=time.strptime(a,"%Y-%m-%d %H:%M:%S")

>>>a='2021-10-28 19:51:51'
>>>b=time.strptime(a,"%Y-%m-%d %H:%M:%S")
>>>b
time.struct_time(tm_year=2021, tm_mon=10, tm_mday=28, tm_hour=19, tm_min=51, tm_sec=51, tm_wday=3, tm_yday=301, tm_isdst=-1)

#将结构化时间转化为,字符串。
a=time.strftime("%Y-%m-%d %H:%M:%S")

>>>c=time.strftime("%Y-%m-%d %H:%M:%S",b)
>>>c
'2021-10-28 19:51:51'

结构化<—>时间戳

#将结构化时间转化为时间戳。
c=time.mktime(b)

>>>b
time.struct_time(tm_year=2021, tm_mon=10, tm_mday=28, tm_hour=19, tm_min=51, tm_sec=51, tm_wday=3, tm_yday=301, tm_isdst=-1)
>>>c=time.mktime(b)
>>>c
1635421911.0

#将时间戳转化为结构化时间
e=time.localtime(d)

>>>e=time.localtime(c)
>>>e
time.struct_time(tm_year=2021, tm_mon=10, tm_mday=28, tm_hour=19, tm_min=51, tm_sec=51, tm_wday=3, tm_yday=301, tm_isdst=0)

所以,中间桥梁是结构化时间。

解决问题:

>>>a='2021-10-28 17:23:11'
#将a先转化结构类型时间,再转化为时间戳类型
>>>b=time.strptime(a,"%Y-%m-%d %H:%M:%S")
>>>b
time.struct_time(tm_year=2021, tm_mon=10, tm_mday=28, tm_hour=17, tm_min=23, tm_sec=11, tm_wday=3, tm_yday=301, tm_isdst=-1)
>>>c=time.mktime(b)
>>>c
1635412991.0
#获得3天的秒数时间戳
>>>d=datetime.timedelta(days=3).total_seconds()
>>>d
259200.0
#得到结果的时间戳
>>>result=c+d
>>>result
1635672191.0
#将结果转化为字符串类型时间
>>>result=time.localtime(result)
>>>result
time.struct_time(tm_year=2021, tm_mon=10, tm_mday=31, tm_hour=17, tm_min=23, tm_sec=11, tm_wday=6, tm_yday=304, tm_isdst=0)
>>>time.strftime("%Y-%m-%d %H:%M:%S",result)
'2021-10-31 17:23:11'
>>>a
'2021-10-28 17:23:11'
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/357636.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号