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

相关文章
|
测试技术 Swift
Swift:Date+Extension
Swift:Date+Extension
729 0
|
Swift
SWIFT中计算两个日期间隔多少小时
SWIFT中如何计算两个日期间隔多少个小时,其实几句代码就可以搞定了,Very Easy,在Playground内输入以下代码 var date1 = "2015-06-26 8:15:10" var dateformatter = NSDateFormatter() dateformatter.
1304 0
|
移动开发 JSON JavaScript
Swift WKWebView JS 和 Native 交互(上)
Swift WKWebView JS 和 Native 交互(上)
1041 0
|
Python
Python:使用os.path.splitext获取文件扩展名
Python:使用os.path.splitext获取文件扩展名
277 0
SwiftUI—方便用户选择日期的DatePicker日期拾取器
SwiftUI—方便用户选择日期的DatePicker日期拾取器
1714 0
SwiftUI—方便用户选择日期的DatePicker日期拾取器
|
Swift
Swift:String+Extension(下)
Swift:String+Extension(下)
789 0
|
测试技术 Swift
Swift:FileManager+Extension
Swift:FileManager+Extension
627 0
|
iOS开发 Swift
iOS - Swift NSNumber 数字
前言 public class NSNumber : NSValue public class NSDecimalNumber : NSNumber NSNumber 可以被赋值为各种数值类型。
3138 0
|
9月前
MQTT的心跳保活机制是通过`setKeepAliveInterval()`方法设置的,
MQTT的心跳保活机制是通过`setKeepAliveInterval()`方法设置的,
655 1

热门文章

最新文章

相关课程

更多