例:要转"Fri Apr 08 11:16:29 +0800 2016"
调用如下:
let createAtStr = "Fri Apr 02 10:22:29 +0800 2014"
let createAtText = NSDate.createDataString(createAtStr)
给NSDate写扩展如下:
import Foundation
extension NSDate{
class func createDateString(createAtStr :String) ->String{
// 1.创建时间格式化对象
letfmt =NSDateFormatter()
fmt.dateFormat="EEE MM dd HH:mm:ss Z yyyy"
fmt.locale=NSLocale(localeIdentifier:"en")
// 2.将字符串时间,转成NSDate类型
guardletcreateDate = fmt.dateFromString(createAtStr)else{
return""
}
// 3.创建当前时间
letnowDate =NSDate()
// 4.计算创建时间和当前时间的时间差
letinterval =Int(nowDate.timeIntervalSinceDate(createDate))
// 5.对时间间隔处理
// 5.1.显示刚刚
ifinterval <60{
return"刚刚"
}
// 5.2.59分钟前
ifinterval <60*60{
return"\(interval /60)分钟前"
}
// 5.3.11小时前
ifinterval <60*60*24{
return"\(interval / (60*60))小时前"
}
// 5.4.创建日历对象
letcalendar =NSCalendar.currentCalendar()
// 5.5.处理昨天数据:昨天12:23
ifcalendar.isDateInYesterday(createDate) {
fmt.dateFormat="昨天HH:mm"
lettimeStr = fmt.stringFromDate(createDate)
return timeStr
}
// 5.6.处理一年之内: 02-22 12:22
letcmps = calendar.components(.Year, fromDate: createDate, toDate: nowDate, options: [])
ifcmps.year<1{
fmt.dateFormat="MM-dd HH:mm"
lettimeStr = fmt.stringFromDate(createDate)
returntimeStr
}
// 5.7.超过一年: 2014-02-12 13:22
fmt.dateFormat="yyyy-MM-dd HH:mm"
lettimeStr = fmt.stringFromDate(createDate)
return timeStr
}
}