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批量修改文件后缀的方法
Jan 26 Python
python统计cpu利用率的方法
Jun 02 Python
Python实现获取域名所用服务器的真实IP
Oct 25 Python
Python实现的爬虫功能代码
Jun 24 Python
Python3 修改默认环境的方法
Feb 16 Python
django中间键重定向实例方法
Nov 10 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
Nov 15 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
keras K.function获取某层的输出操作
Jun 29 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
python一些性能分析的技巧
Aug 30 Python
python的setattr函数实例用法
Dec 16 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
php多用户读写文件冲突的解决办法
2013/11/06 PHP
php计算函数执行时间的方法
2015/03/20 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
Position属性之relative用法
2015/12/14 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
React学习笔记之事件处理(二)
2017/07/02 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python获取远程文件大小的函数代码分享
2014/05/13 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
Python hashlib模块用法实例分析
2018/06/12 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
python文件写入write()的操作
2019/05/14 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
详解Python中第三方库Faker
2020/09/25 Python
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
个人思想理论学习的自我鉴定
2013/11/30 职场文书
毕业证丢失证明
2014/01/15 职场文书
优秀教师的感人事迹
2014/02/04 职场文书
工地安全检查制度
2014/02/04 职场文书
电大本科自我鉴定
2014/02/05 职场文书
小学生2014国庆节演讲稿:祖国在我心中
2014/09/21 职场文书
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js
Python探索生命起源 matplotlib细胞自动机动画演示
2022/04/21 Python