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 相关文章推荐
Python3 能振兴 Python的原因分析
Nov 28 Python
深入解读Python解析XML的几种方式
Feb 16 Python
ansible作为python模块库使用的方法实例
Jan 17 Python
python利用Guetzli批量压缩图片
Mar 23 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
Oct 29 Python
更新修改后的Python模块方法
Mar 03 Python
Python中IP地址处理IPy模块的方法
Aug 16 Python
Django对models里的objects的使用详解
Aug 17 Python
Python实现把类当做字典来访问
Dec 16 Python
python 命名规范知识点汇总
Feb 14 Python
python 代码运行时间获取方式详解
Sep 18 Python
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
Apr 14 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
封装一个PDO数据库操作类代码
2009/09/09 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
PHP中file_get_contents高?用法实例
2014/09/24 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
JQuery基础语法小结
2015/02/27 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
Vue性能优化的方法
2020/07/30 Javascript
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
Python中操作mysql的pymysql模块详解
2016/09/13 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
python 爬虫百度地图的信息界面的实现方法
2019/10/27 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
《北京的春节》教学反思
2014/04/07 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
工作态度检讨书范文
2015/05/06 职场文书
单位计划生育责任书
2015/05/09 职场文书
新人入职感言
2015/07/31 职场文书
mysql优化
2021/04/06 MySQL
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server