您的位置:首页 > 编程语言 > Python开发

Python中时间类解决类似朋友圈时间显示的小问题

2017-11-10 10:42 375 查看
  主要用到python中的datetime模块和re模块解决问题,时间模块主要进行当前时间,
时间差的求取以及给定时间的转换,而re模块主要用于天数,小时数,分钟数的正则匹配问题。
以下是思路:

1.把已知时间转换为datetime对象
2.获取当前的时间
3.两个时间对象相减,获取时间差对象,并转换为string
4.进行正则匹配天数,小时,分钟
5.如果天数小于0.则获取小时数,如果小时小于0,则获取分钟
代码实现:


#encoding=utf-8

fromdatetimeimportdatetime
importre

date_str="2017-11-0809:18:00"
dt_obj=datetime.strptime(date_str,"%Y-%m-%d%H:%M:%S")#转化为datetime对象
print(type(datetime.now()-dt_obj))
time_diff=str(datetime.now()-dt_obj)
print(time_diff)

#显示天数
defcal_day(day_ago):
ifday_ago==1:
print("昨天")
else:
print("{}天前".format(str(day_ago)))

#显示小时
defcal_hour(hour_ago):
ifhour_ago>0:
print("{}小时前".format(str(hour_ago)))
returnTrue
else:
returnFalse

#显示分钟
defcal_minute(minute_ago):
print("{}分钟前".format(str(minute_ago)))

#获取天数
day_ago=re.findall("(\d\s)day",time_diff)[0]iflen(re.findall("(\d\s)day",time_diff))>0elseNone
ifday_agoisnotNone:
day_ago=int(day_ago)
cal_day(day_ago)
else:
#获取小时
hour_ago=re.findall("(\d+):",time_diff)[0]
hour_ago=int(hour_ago)
flag=cal_hour(hour_ago)
ifflagisnotTrue:
#获取分钟
minute_ago=re.findall(":(\d+):",time_diff)[0]
minute_ago=int(minute_ago)
cal_minute(minute_ago)



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐