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 相关文章推荐
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
python实现连接mongodb的方法
May 08 Python
Python实现单词翻译功能
Jun 06 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
Python实现基于POS算法的区块链
Aug 07 Python
Python查找文件中包含中文的行方法
Dec 19 Python
Django之模型层多表操作的实现
Jan 08 Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 Python
python二维键值数组生成转json的例子
Dec 06 Python
python词云库wordcloud的使用方法与实例详解
Feb 17 Python
python实现AHP算法的方法实例(层次分析法)
Sep 09 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下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
PHP中->和=>的含义及使用示例解析
2020/08/06 PHP
jquery ajax return没有返回值的解决方法
2011/10/20 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
jQuery自定义图片上传插件实例代码
2017/04/04 jQuery
JS实现队列的先进先出功能示例
2017/05/10 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
Python扩展内置类型详解
2018/03/26 Python
pandas ix &iloc &loc的区别
2019/01/10 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
python中p-value的实现方式
2019/12/16 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
js实现弹框效果
2021/03/24 Javascript
2014年终工作总结范本
2014/12/15 职场文书
嘉宾邀请函
2015/01/31 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
初中生物教学随笔
2015/08/15 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书