美文网首页
swift 日期字符串处理

swift 日期字符串处理

作者: HobsonStorm | 来源:发表于2018-08-03 12:34 被阅读0次
    • String类添加扩展方法
    //MARK: 生成相对日期时间
    extension String{
        func relativeTimeStr(formatStr: String = "YYYY-MM-dd HH:mm:ss") -> String {
            //字符串转Date
            let formatter = DateFormatter()
            formatter.dateFormat = formateStr
            let date = formatter.date(from: self) ?? Date()
            //分解日期
            let calendarComponents = Calendar.current.dateComponents([.year,.month,.hour,.day,.hour,.minute], from: date)
            let year = calendarComponents.year ?? 0
            let month = calendarComponents.month ?? 0
            let day = calendarComponents.day ?? 0
            let hour = calendarComponents.hour ?? 0
            let minute = calendarComponents.minute ?? 0
            //时间间隔
            let curentYear = Calendar.current.dateComponents([.year], from: Date()).year ?? 0
            let minuteGap = Calendar.current.dateComponents([.minute], from: date,to: Date()).minute ?? 0
            let hourGap = Calendar.current.dateComponents([.hour], from: date, to: Date()).hour ?? 0
            //返回时间信息
            if Calendar.current.isDateInToday(date){
                if  minuteGap < 5{
                    return "刚刚"
                }else if hourGap < 1{
                    return "\(minuteGap)分钟前"
                }else{
                    return "\(hourGap)小时前"
                }
            }else if Calendar.current.isDateInYesterday(date){
                return String.init(format: "昨天 %02d:%02d", arguments: [hour,minute])
            }else if year == curentYear{
                return String.init(format: "%02d-%02d %02d:%02d", arguments: [month,day,hour,minute])
            }else{
                return "\(year)-\(month)-\(day) \(hour):\(minute)"
            }
        }
    }
    
    • 用法很简单,字符串直接调用relativeTimeStr方法。
    • 如果有不同的日期格式化规则,给formatStr传相应的规则即可。
    • 有问题欢迎指正。
      let dateStr = "2018-08-01 18:50:30"
      let dateTip = dateStr.relativeTimeStr()
    

    相关文章

      网友评论

          本文标题:swift 日期字符串处理

          本文链接:https://www.haomeiwen.com/subject/xuyyvftx.html