python 实现仿微信聊天时间格式化显示的代码


Posted in Python onApril 17, 2020

时间格式化所使用的算法为:

"""
    1.如果不在同一年 '%Y年%m月%d日'
    2.如果在同一年
      2.1 如果在同一个月
        2.1.1 如果在同一天 '%H:%M'
        2.1.2 如果是昨天 '昨天 %H:%M'
        2.1.2 如果在同一周 '周x 00:00' 去除周日 的情况
      2.2 否则 '%m月%d日 %H:%M'
    """

具体的python代码如下:

def fmtdt_str(dtstr, fmt): 
    result = ""
    locale.setlocale(locale.LC_CTYPE, 'chinese')
    curtime = datetime.now()
    curYear = curtime.year
    curMonth = curtime.month
    str_time = datetime.strptime(dtstr, fmt)
    if str_time.year == curYear:
      if str_time.month == curMonth:
        days_interval = (curtime.day - str_time.day)
        if days_interval == 0:
          result = str_time.strftime("%H:%M")
        elif days_interval == 1:
          result = str_time.strftime("昨天 %H:%M")
        else:
          if curtime.strftime("%W") == str_time.strftime("%W"):
            week_str = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
            str_weekno = str_time.weekday()
            if str_weekno == 0:
              result = str_time.strftime("%m月%d日 %H:%M")
            else:
              result = str_time.strftime(week_str[str_weekno] + " %H:%M")
          else:
            result = str_time.strftime("%m月%d日 %H:%M")
      else:
        result = str_time.strftime("%m月%d日 %H:%M")
    else:
      result = str_time.strftime("%Y年%m月%d日")
    return result

总结

到此这篇关于python 实现仿微信聊天时间格式化显示的代码的文章就介绍到这了,更多相关python时间格式化显示内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 Python
浅谈python字符串方法的简单使用
Jul 18 Python
SQLite3中文编码 Python的实现
Jan 11 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
Oct 29 Python
python通过tcp发送xml报文的方法
Dec 28 Python
python实现kNN算法识别手写体数字的示例代码
Aug 16 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
如何利用python给图片添加半透明水印
Sep 06 Python
详解Python time库的使用
Oct 10 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
Mar 18 Python
Django如何使用redis作为缓存
May 21 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
Oct 15 Python
python matplotlib实现将图例放在图外
Apr 17 #Python
python 比较字典value的最大值的几种方法
Apr 17 #Python
Python3 selenium 实现QQ群接龙自动化功能
Apr 17 #Python
python plt可视化——打印特殊符号和制作图例代码
Apr 17 #Python
Python 多线程共享变量的实现示例
Apr 17 #Python
matplotlib 对坐标的控制,加图例注释的操作
Apr 17 #Python
matplotlib quiver箭图绘制案例
Apr 17 #Python
You might like
音乐朗读剧《MARS RED》2021年TV动画化决定!
2020/03/06 日漫
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
2014/12/20 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
2016/03/28 Javascript
jQuery 获取多选框的值及多选框中文的函数
2016/05/16 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
EasyUI实现下拉框多选功能
2017/11/07 Javascript
基于js文件加载优化(详解)
2018/01/03 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
对python中UDP,socket的使用详解
2019/08/22 Python
python里反向传播算法详解
2020/11/22 Python
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
2014年父亲节活动方案
2014/03/06 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
党员大会主持词
2014/04/02 职场文书
高考寄语大全
2014/04/08 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis