IOS仿微信朋友圈的日期处理

经常刷微信朋友圈的朋友,都能看到该条信息是什么发送的,有刚刚,有昨天,有xxxx年xx月xx日发送的,今天我们就探究微信内部是怎么样去做的。
对于传入的时间,一般是从服务器请求回来的json的时间数据要进行格式化,然后跟当前时间比较,当小于60秒,则显示刚刚,我们采用分类的思想封装工具类。对NSDate进行封装。采用全局类方法对外暴露一个方法,可以仿照 我现在书写的格式进行改造返回的具体字符串。oc的写法亦是如此。
Sat Nov 20 15:14:20 +0800 2021 这是服务器json返回的格式,每个软件在设计存入数据库的格式都不一样。根据需求具体可以自行更改自己需要格式进行格式化。只要动df.dateFormat那个参数即可。

//
//  NSDate-Extension.swift
//  timeTransform
//
//  Created by lujun on 2021/11/20.
//
import Foundation
extension NSDate {class func createDateString(createAtStr: String) -> String {//        let _ = "Sat Nov 20 15:14:20 +0800 2021"let df = DateFormatter()df.dateFormat = "EEE MM dd HH:mm:ss Z yyyy"df.locale = NSLocale(localeIdentifier: "en") as Localeguard let createDate = df.date(from: createAtStr) else { return "" }let nowDate = NSDate() as Date//计算时间差let interval = Int(nowDate.timeIntervalSince(createDate))
//        debugPrint(interval)if interval < 60 {return "刚刚"}if interval < 60 * 60 {return "\(interval / 60)分钟前"}if interval < 60 * 60 * 24 {return "\(interval / 3600)小时前"}//5.4 创建日历对象let calendar = Calendar.current//5.5 处理昨天数据 昨天 12:23if calendar.isDateInYesterday(createDate) {df.dateFormat = "昨天 HH:mm"let timeStr = df.string(from: createDate)return timeStr}//5.6 处理一年以内 11-20 12:22let cmps = (calendar as NSCalendar).components(.year, from: createDate, to: nowDate, options: [])if cmps.year ?? 0 < 1 {df.dateFormat = "MM-dd HH:mm"let timeStr = df.string(from: createDate)return timeStr}//5.7 超过一年 2021-11-20 13:32df.dateFormat = "yyyy-MM-dd HH:mm"let timeStr = df.string(from: createDate)return timeStr}}

touchBegin测试一下
override func touchesBegan(_ touches: Set, with event: UIEvent?) {
let createTimeStr = “Sat Nov 20 15:14:20 +0800 2021”
debugPrint(NSDate.createDateString(createAtStr: createTimeStr))
}
https://gitee.com/johnson__save_admin/time-transform-swift

IOS仿微信朋友圈的日期处理相关推荐

  1. iOS - 仿微信朋友圈视频剪切功能

    分析需求 我们先看一看微信的界面 微信效果图 1.页面下部拖动左边和右边的白色竖条控制剪切视频的开始和结束时间,预览界面跟随拖动位置跳到视频相应帧画面,控制视频长度最长15秒,最短5秒 2.拖动下部图 ...

  2. iOS粒子特效、仿微信朋友圈、转场动画、抢红包动画等源码

    iOS精选源码 viewController 之间的转场动画 swift版 视频添加水印及粒子特效 小红点(消息推送提醒)完整解决方案 仿微信朋友圈–CircleOfFriendsDisplay 图片 ...

  3. Android 仿微信朋友圈添加图片

    github地址(欢迎下载Demo) https://github.com/zhouxu88/WXCircleAddPic 老习惯,先上图,着急用的朋友,直接带走Demo,先拿来用吧,毕竟老板催的紧, ...

  4. android 仿微信朋友圈 评论,2020年android 仿微信朋友圈 评论

    2020年android 仿微信朋友圈 评论 1.如果有人问我:那些艰难的岁月你是怎么熬过来的?我想我只有一句话回答:我有一种强大的精神力量支撑着我,这种力量名字叫"想死又不敢" ...

  5. php仿微信朋友圈网站源码,Smobiler仿微信朋友圈的消息代码实例

    这篇文章主要介绍了.Net语言Smobiler开发平台如何仿微信朋友圈的消息样式?本文为大家揭晓答案 最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xam ...

  6. Android仿微信朋友圈7实现点赞功能

    前言: 之前一直有朋友问我点赞怎么实现?今天趁着休息时间整理出来,其实点赞的功能和用户评论差不多,都是显示一个用户列表,只不过评论有评论内容和回复评论功能.实现点赞的思路如下: 1.当用户点击点赞按钮 ...

  7. Android自定义弹窗模仿微信,Android 仿微信朋友圈点赞和评论弹出框功能

    本文简单模仿微信朋友圈的点赞和评论弹出框,布局等细节请忽略,着重实现弹出框.发评论,及弹出位置的控制. 1. 微信弹出框 微信朋友圈的点赞和评论功能,有2个组成部分: 点击左下角的"更多&q ...

  8. Android仿微信朋友圈4实现评论动态时输入框和软键盘自动定位到内容下面

    最近做完朋友圈功能后,测试提出一个功能优化,在某些发布的动态下评论时软键盘和输入框遮当内容了,这个用户体验感觉不是很好,于是根据今日头条和其他热门的App评论时软键盘和输入框都是在内容下面.Scrol ...

  9. 仿微信朋友圈【九宫格的实现】

    仿微信朋友圈[九宫格的实现] 标签: 九宫格自定义viewgroup 2017-04-18 18:39  561人阅读  评论(0)  收藏  举报   分类: Android(25)  版权声明:本 ...

最新文章

  1. Hacker(十)----常用入侵工具
  2. 6款实用开源报表工具 | 码云周刊第 83 期
  3. winform 在panel怎么实现锚点定位_5GC支持URLLC解决方案12:以太网PDU会话锚点重定位...
  4. 数据结构知识点大汇总(二)
  5. 新概念51单片机C语言教程纠错(1)
  6. loj#2073. 「JSOI2016」扭动的回文串
  7. 为什么越来越多的人尝试做自媒体
  8. [MySQL FAQ]系列 -- MySQL怎么有时候像是多进程,有时候却是多线程
  9. 计蒜客:区间整数操作-区间更新-区间和
  10. 微型计算机主机作用,微型计算机的主机包括()。
  11. “拼多多”的假面人生
  12. c语言简易仙侠文字游戏
  13. 给创业码农的话--如何提升开发效率
  14. 我们为什么做Banana Pi开源硬件项目:
  15. 阿里巴巴编程规范(new)
  16. Transport Error: socket_protect error (UDP)
  17. 痴情人肠断 无情最逍遥
  18. PKI 公钥基础设施原理与应用
  19. JSP连接数据库实现查询
  20. 软件测试从业者必备核心素质

热门文章

  1. linux cdc设备驱动程序,Linux Kernel 'cdc-wdm' USB设备驱动程序堆缓冲区溢出漏洞
  2. php use 多个,php中同时使用多个use导入命名空间时的问题
  3. html文字斜体变成正体,$$中的字母如何由斜体变成正体?
  4. selenium java 断言_Java+Selenium+Testng自动化测试学习(三)— 断言
  5. 电脑休眠和睡眠的区别_关机、睡眠、休眠有啥区别?微软说非特殊情况不要关机...
  6. 字符串类型的数字比较大小_Python核心知识系列:数字与字符串类型
  7. go test 如何输出到控制台_GO笔记之GO命令快速体验
  8. android应用启动页面显示不出来了,Android应用中启动页出现白屏如何解决
  9. python中的doc_在windows 10上读取python中的.doc文件
  10. c 中连接mysql登录不成功_数据库连接失败的原因分析及解决办法 | 学步园