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使用xmlrpc实例讲解
Dec 17 Python
python中while循环语句用法简单实例
May 07 Python
Python中对元组和列表按条件进行排序的方法示例
Nov 10 Python
Python 中Pickle库的使用详解
Feb 24 Python
Python解决八皇后问题示例
Apr 22 Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 Python
不知道这5种下划线的含义,你就不算真的会Python!
Oct 09 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
Jan 23 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
解决pycharm同一目录下无法import其他文件
Feb 12 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
Nov 06 Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
Apr 05 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常用正则表达式集锦
2014/08/17 PHP
JavaScript XML操作 封装类
2009/07/01 Javascript
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
Javascript 类型转换方法
2010/10/24 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
JS实现的竖向折叠菜单代码
2015/10/21 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
python实现员工管理系统
2018/01/11 Python
Python实现上下班抢个顺风单脚本
2018/02/07 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
python实现超市商品销售管理系统
2019/11/22 Python
Pytorch之parameters的使用
2019/12/31 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
Java的五个基础面试题
2016/02/26 面试题
竞选演讲稿范文
2013/12/28 职场文书
幼儿园教师辞职信
2014/01/18 职场文书
公司周年庆典策划方案
2014/05/17 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书