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

相关文章
|
机器学习/深度学习 算法 决策智能
智能解决装箱问题:使用优化算法实现高效包装
装箱问题(Bin Packing Problem)是组合优化领域中的一个经典问题,主要涉及如何将一系列对象高效地装入有限数量的容器(或“箱”)中,同时满足特定的约束条件。这个问题的目标是最小化所需使用的箱子数量或者最大化箱子的装载效率,以减少空间或资源的浪费。
|
6月前
|
数据处理
CUT&Tag 分析教程 | 完结撒花
CUT&Tag 分析教程 | 完结撒花
CUT&Tag 分析教程 | 完结撒花
|
4月前
|
算法 搜索推荐 Java
拼多多与抖音电商 API 接口,哪个更适合带货?
在数字化营销时代,拼多多与抖音电商API成为带货关键工具。拼多多API集成简便,适合低价、团购型商品推广;抖音电商API则依托短视频与直播,实现高互动内容带货。本文对比两者功能、优势与适用场景,助你选择更高效带货方案。
164 0
|
7月前
|
人工智能 缓存 NoSQL
Redis 与 AI:从缓存到智能搜索的融合之路
Redis 已从传统缓存系统发展为强大的 AI 支持平台,其向量数据库功能和 RedisAI 模块为核心,支持高维向量存储、相似性搜索及模型服务。文章探讨了 Redis 在实时数据缓存、语义搜索与会话持久化中的应用场景,并通过代码案例展示了与 Spring Boot 的集成方式。总结来看,Redis 结合 AI 技术,为现代应用提供高效、灵活的解决方案。
阿里云公网IP地址多少钱一个?
阿里云公网IP价格因地域而异,如华北1(青岛)包年包月约20.70元/月,华北2(北京)及其他地区23元/月,香港30元/月,新加坡23元/月。按量付费模式下,保有费0.020元/小时,流量额外计费。
3531 0
阿里云公网IP地址多少钱一个?
|
机器学习/深度学习 搜索推荐 Python
L2范数(L2 norm)
L2范数(L2 norm),也称为欧几里德范数(Euclidean norm)或2-范数,是向量元素的平方和的平方根。它在数学和机器学习中经常被用作一种正则化项、距离度量或误差度量。
10646 76
|
安全 编译器 API
C++系统日志库精选:深入剖析glog与log4cplus,轻松搭建高效日志系统
C++系统日志库精选:深入剖析glog与log4cplus,轻松搭建高效日志系统
2083 0
|
存储 移动开发 缓存
使用 Go 语言开发 Android 应用的正确姿势探索
使用 Go 语言开发 Android 应用的正确姿势探索
使用 Go 语言开发 Android 应用的正确姿势探索
|
存储 监控 安全
网络存储解决方案:选择与配置
网络存储解决方案:选择与配置
408 0
|
传感器 网络协议 Unix
Modbus驱动库—libmodbus的使用
Modbus驱动库—libmodbus的使用
5471 0
Modbus驱动库—libmodbus的使用