博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python中时间类解决类似朋友圈时间显示的小问题
阅读量:7197 次
发布时间:2019-06-29

本文共 1265 字,大约阅读时间需要 4 分钟。

  主要用到python中的datetime模块和re模块解决问题,时间模块主要进行当前时间, 时间差的求取以及给定时间的转换,而re模块主要用于天数,小时数,分钟数的正则匹配问题。 以下是思路:
1.把已知时间转换为datetime对象  2.获取当前的时间  3.两个时间对象相减,获取时间差对象,并转换为string  4.进行正则匹配天数,小时,分钟  5.如果天数小于0.则获取小时数,如果小时小于0,则获取分钟 代码实现:
# encoding=utf-8from datetime import datetimeimport redate_str = "2017-11-08 09: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)# 显示天数def cal_day(day_ago):    if day_ago == 1:        print("昨天")    else:        print("{}天前".format(str(day_ago)))# 显示小时def cal_hour(hour_ago):    if hour_ago > 0:        print("{}小时前".format(str(hour_ago)))        return True    else:        return False# 显示分钟def cal_minute(minute_ago):    print("{}分钟前".format(str(minute_ago)))# 获取天数day_ago = re.findall("(\d\s)day", time_diff)[0] if len(re.findall("(\d\s)day", time_diff)) > 0 else Noneif day_ago is not None:    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)    if flag is not True:        # 获取分钟        minute_ago = re.findall(":(\d+):", time_diff)[0]        minute_ago = int(minute_ago)        cal_minute(minute_ago)

 

 

转载地址:http://zatkm.baihongyu.com/

你可能感兴趣的文章
压缩、解压缩流GZipStream
查看>>
js编程思路--把相同功能的代码,配置放到一个对象里
查看>>
Oracle性能优化
查看>>
拖动缩放[转]
查看>>
ASP.NET MVC---自定义HtmlHelper方法
查看>>
javaweb入门(4)-- 详细了解http协议2
查看>>
POJ-3686 The Windy's 犀利构图+KM
查看>>
重新认识c++的cin、cout
查看>>
poj1611
查看>>
多例设计模式与枚举
查看>>
【转】Scrum角色及其职责介绍
查看>>
【动画】【特效】activity跳转华丽的过渡效果(转载)
查看>>
使用Eclipse进行远程调试【转】
查看>>
闲谈简单设计(KISS)疑惑
查看>>
四、Html5 语音识别
查看>>
<![CDATA[ ]]> 是什么东东
查看>>
Logger 源码解析 --- MyLogger
查看>>
设置VMware随系统开机自动启动并引导虚拟机操作系统
查看>>
元对象我所理解的设计模式(C++实现)——享元模式(Flyweight Pattern)
查看>>
iOS5新开发的API总述
查看>>