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

相关文章
|
C++ iOS开发 Swift
swift4.1 系统学习十 函数
swift的函数与其他语言中的函数还是有很多的不同点的, 我们在本节中一起学习swift中的函数都有哪些特性。 辅助文件, 在“统一的函数引用体系”中会用到。
1045 0
|
Swift
swift4.1 系统学习七
import Foundation //swift学习笔记07 /* 控制流语句 学过任何一种语言的小伙伴们都对控制流语句不陌生,几乎每一天都在用。 控制流分类: 1.分支 2.循环 */ /* do语句块 这个语句块在我之前的学习中一直在使用,是一种在学习中很方便的写代码的方式。
1019 0
|
Swift 机器学习/深度学习 C语言
swift4.1 系统学习八
// // main.swift // swift08 // // Created by iOS on 2018/9/28. // Copyright © 2018年 weiman. All rights reserved. // import Foundation //swift学习笔记8 /* 1. for-in 循环 swift中使用for-in循环还是很频繁的。
896 0
|
索引 Swift 自然语言处理
swift4.1 系统学习六
swift学习笔记6 字符和字符串 在swift中,String类型也是结构体,属于值类型,而不是引用类型。这一点,与OC是不一样的。 // // main.
845 0
|
存储 Swift iOS开发
swift4.1 系统学习四
// // main.swift // swift04 // // Created by iOS on 2018/9/21. // Copyright © 2018年 weiman.
1064 0
|
索引 机器学习/深度学习 Swift
swift4.1 系统学习三
// // main.swift // swift03 // // Created by iOS on 2018/9/21. // Copyright © 2018年 weiman. All rights reserved. // import Foundation /* swift学习笔记4 */ // 1.元组 /* 元组是swift中一种复合类型。
847 0
|
Swift iOS开发 MacOS
swift4.1 系统学习一
/* swift学习笔记1 简介 swift出现的目的:为了简化macOS和iOS开发 特点: 1.开源 2.跨平台 3.面向对象的编程语言 4.编程范式丰富:面向过程,面向对象,函数式编程 5.安全性 */ /* swift学习笔记2 基本类型体系 1.枚举(enum) 2.结构体(struct) 3.类(class) 4.协议(protocol) 5.函数(function) 6.复合类型:元组(tuple) 注意:这里并没有像别的语言那样,把基本数据类型和用户自定义数据类型分类。
1080 0
|
iOS开发
Swift 2.3升级到Swift 3.0小记
> 阿里云App从Swift 2.1开始使用Swift,随时不断的推进,现在所有的业务代码都用Swift编写。由于Swift 3.0语法上有诸多改变,所以从Swift 2.3升级到Swift 3.0是一件宜早不宜迟的事情。元旦期间抽了点时间做这个升级。 ### 外部依赖 * 目前开源社区对Swift 3.0支持是非常好的,我们依赖的开源组件最新版本都支持Swift 3.0了,所以并没有
1757 0
|
C语言 Ruby
关于 Swift,我不喜欢的几点
本文讲的是关于 Swift,我不喜欢的几点,关于喜欢 Swift 的理由,可以有很多,之前我已经写到了。 但是今天,我想要写的是这门语言不足的地方。这是一个有着很多细微差别且具有很强争议性的问题,所以我将举出几个例子
1097 0