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)
相关文章推荐
- 关于类似朋友圈的发布时间间隔计算问题(python)
- Extjs显示时间兼容性问题——firefox正常显示,IE不正常出现NaN-NaN-NaN的解决方式
- WINDOWS 2003系统时间24小时制与12小时显示格式不一致问题与解决
- 关于Highcharts的x轴密密麻麻的时间格式显示问题解决方法
- tomcat取到的系统时间与系统显示时间不一致问题解决
- 用户登录域时间过久问题解决案例 或显示电脑登陆到那个dc
- 解决调用本地时间做的时间显示中可能出现的时间调用错误的问题
- 解决ubuntu时间显示丢失问题
- 解决ubuntu时间显示丢失问题
- 解决IIS7、IIS7.5中时间格式显示的问题
- python显示'\u897f类字符问题的解决方法
- python显示'\u897f类字符问题的解决方法
- Windows没有北京时间(GMT+8时区)的问题,及QQ聊天栏中显示的时间错误的问题解决办法
- 解决python中matplotlib绘图中文显示问题
- 关于mschart的X轴时间显示问题,时间始终是从0到24小时排序,不是零点分界,错误解决办法
- 帮助类解决日期时间问题(包含从Mysql中查出来的数据后面多了个0的问题,以友好的方式显示时间的问题)
- 解决QQ2009在win7中时间显示错误问题
- 解决Linux下运行Python脚本显示“: 没有那个文件或目录”的问题
- PL/SQL TIMESTAMP 时间显示问题解决
- Extjs显示时间兼容性问题——firefox正常显示,IE不正常出现NaN-NaN-NaN的解决方式