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实现随机密码字典生成器示例
Apr 09 Python
python处理圆角图片、圆形图片的例子
Apr 25 Python
python中__call__内置函数用法实例
Jun 04 Python
Python ldap实现登录实例代码
Sep 30 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
Python 将pdf转成图片的方法
Apr 23 Python
transform python环境快速配置方法
Sep 27 Python
使用python实现http及ftp服务进行数据传输的方法
Oct 26 Python
Python 获取numpy.array索引值的实例
Dec 06 Python
详解pyinstaller生成exe的闪退问题解决方案
Jun 19 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
Python使用socket模块实现简单tcp通信
Aug 18 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面向对象重点知识分享
2019/09/27 PHP
深入认识JavaScript中的函数
2007/01/22 Javascript
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
JS Timing
2007/04/21 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
2014/01/27 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
vue获取form表单的值示例
2019/10/29 Javascript
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
浅析python表达式4+0.5值的数据类型
2020/02/26 Python
python IP地址转整数
2020/11/20 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
DJI美国:消费类无人机领域的领导者
2018/04/27 全球购物
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
应届毕业生的自我鉴定
2013/11/13 职场文书
七匹狼男装广告词
2014/03/21 职场文书
小学运动会前导词
2015/07/20 职场文书
Django与数据库交互的实现
2021/06/03 Python
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL