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 相关文章推荐
50行代码实现贪吃蛇(具体思路及代码)
Apr 27 Python
跟老齐学Python之list和str比较
Sep 20 Python
Linux下用Python脚本监控目录变化代码分享
May 21 Python
Python生成随机密码的方法
Jun 16 Python
使用python绘制二元函数图像的实例
Feb 12 Python
django 自定义过滤器的实现
Feb 26 Python
python替换字符串中的子串图文步骤
Jun 19 Python
python中的句柄操作的方法示例
Jun 20 Python
在pytorch中为Module和Tensor指定GPU的例子
Aug 19 Python
python爬虫库scrapy简单使用实例详解
Feb 10 Python
jupyter notebook更换皮肤主题的实现
Jan 07 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 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
java微信开发之上传下载多媒体文件
2016/06/24 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
js异或加解密效果代码
2008/06/25 Javascript
js 效率组装字符串 StringBuffer
2009/12/23 Javascript
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
JS实现同时搜索百度和必应的方法
2015/01/27 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
node.js环境搭建图文详解
2018/09/19 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python文件和目录操作方法大全(含实例)
2014/03/12 Python
Python引用传值概念与用法实例小结
2017/10/07 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
python numpy矩阵信息说明,shape,size,dtype
2020/05/22 Python
如何完美的建立一个python项目
2020/10/09 Python
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
夜班门卫岗位职责
2013/12/09 职场文书
员工趣味活动方案
2014/08/27 职场文书
公司授权委托书范本
2014/09/18 职场文书
撤诉申请怎么写
2015/05/19 职场文书
致青春观后感
2015/06/09 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书
python3实现无权最短路径的方法
2021/05/12 Python