swift时间的一个处理

简介: swift时间的一个处理

swift时间的一个处理


  • 如果时间比现在小于60秒,则显示刚刚
  • 如果时间比现在小于60分钟,则显示多少分钟前
  • 如果时间比现在小于24小时,则显示多少个小时前
  • 如果时间比现在超过24小时小于48小时,则显示昨天几点几分
  • 如果时间比现在间隔小于1年,则显示哪月哪天,几时几分
  • 其他的就显示哪年哪月哪天几时几分

代码实现

let  fmt = DateFormatter()
        fmt.dateFormat = "EEE MM dd HH:mm:ss Z yyyy"
        fmt.locale = NSLocale(localeIdentifier: "en") as Locale
        // 2.将字符串时间,转成NSDate类型
        guard let ceateDate = fmt.date(from: createAtstr) else {
            return ""
        }
        let nowDate = NSDate()
        let interval = nowDate.timeIntervalSince(ceateDate)
        if interval < 60 {
            return "刚刚"
        }
        if interval < (60 * 60) {
        return "\(Int(interval) / 60)分钟前"
        }
        if interval < (60 * 60 * 24){
        return "\(Int(interval)/(60 * 60))小时前"
        }
        let calendar = NSCalendar.current
        if calendar.isDateInYesterday(ceateDate){
        fmt.dateFormat = "昨天 HH:mm"
        return fmt.string(from: ceateDate)
        }
        let gap = calendar.dateComponents([Calendar.Component.year], from: ceateDate, to: nowDate as Date)
        if gap.year! < 1 {
        fmt.dateFormat = "MM-dd HH:mm"
        return fmt.string(from: ceateDate)
        }
        fmt.dateFormat = "yyyy-MM-dd HH:mm"
        return fmt.string(from: ceateDate)
  • 封装成一个分类

第一步

fea2f0e170188f7afdcd9bef2af0434c.png

image.png

第二步

a23e129bf3f7730d5d86d993ba41190f.png

image.png

第三步

  • 并提供一个类方法
  • 把刚才的代码放到类方法里面 外面直接调用即可


06f26353b6bb69093b71f4218c2ea79f.pngimage.png

a9f8b00c12dab062a56489b1175f05de.png
image.png

  • 使用

    ba5c2d54afa5f02194714e69409a2ffb.png
    image.png

代码呈上

https://gitee.com/lanyingwei/codes/bo9tp4g0hkeq6m31fzsdi33

相关文章
|
7月前
|
数据处理
CUT&Tag 分析教程 | 完结撒花
CUT&Tag 分析教程 | 完结撒花
CUT&Tag 分析教程 | 完结撒花
|
5月前
|
算法 搜索推荐 Java
拼多多与抖音电商 API 接口,哪个更适合带货?
在数字化营销时代,拼多多与抖音电商API成为带货关键工具。拼多多API集成简便,适合低价、团购型商品推广;抖音电商API则依托短视频与直播,实现高互动内容带货。本文对比两者功能、优势与适用场景,助你选择更高效带货方案。
209 0
|
8月前
|
人工智能 缓存 NoSQL
Redis 与 AI:从缓存到智能搜索的融合之路
Redis 已从传统缓存系统发展为强大的 AI 支持平台,其向量数据库功能和 RedisAI 模块为核心,支持高维向量存储、相似性搜索及模型服务。文章探讨了 Redis 在实时数据缓存、语义搜索与会话持久化中的应用场景,并通过代码案例展示了与 Spring Boot 的集成方式。总结来看,Redis 结合 AI 技术,为现代应用提供高效、灵活的解决方案。
阿里云公网IP地址多少钱一个?
阿里云公网IP价格因地域而异,如华北1(青岛)包年包月约20.70元/月,华北2(北京)及其他地区23元/月,香港30元/月,新加坡23元/月。按量付费模式下,保有费0.020元/小时,流量额外计费。
4078 0
阿里云公网IP地址多少钱一个?
|
安全 编译器 API
C++系统日志库精选:深入剖析glog与log4cplus,轻松搭建高效日志系统
C++系统日志库精选:深入剖析glog与log4cplus,轻松搭建高效日志系统
2244 0
|
存储 监控 安全
网络存储解决方案:选择与配置
网络存储解决方案:选择与配置
440 0
|
存储 移动开发 缓存
使用 Go 语言开发 Android 应用的正确姿势探索
使用 Go 语言开发 Android 应用的正确姿势探索
使用 Go 语言开发 Android 应用的正确姿势探索
|
传感器 网络协议 Unix
Modbus驱动库—libmodbus的使用
Modbus驱动库—libmodbus的使用
5813 0
Modbus驱动库—libmodbus的使用
|
前端开发 JavaScript 关系型数据库
基于springboot+vue的汽车销售系统(前后端分离)
该系统基于springboot+vue整合,mysql数据库,前后端分离,具有完整的业务逻辑。
基于springboot+vue的汽车销售系统(前后端分离)