时间处理:分类可以直接使用
```
//刚刚(一分钟内) x分钟前(一小时内) x小时前(当天) MM-dd HH:mm(一年内)
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let str = "Sat Nov 10 14:50:10 +0800 2015"
let date = NSDate.sinaDate(str)
let fullString = date?.fullDescription()
print(fullString)
}
```
```
//处理比较复杂的时间的运算 可以 NSCalendar 提供非常丰富的时间处理函数
import Foundation
extension NSDate {
//将字符串转换为 日期对象
class func sinaDate(dateString: String) -> NSDate? {
//实例化转换字符串的对象 ,将字符串 转换成日期
let df = NSDateFormatter()
df.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy" //指定转换格式
let date = df.dateFromString(dateString) //将字符串转换为 日期 对象
return date
}
func fullDescription() -> String { //将日期转换描述字符串
let calendar = NSCalendar.currentCalendar()
if calendar.isDateInToday(self) {
print("今天")
//确定计算的时间 和当前的时间的差值
let delta = Int(NSDate().timeIntervalSinceDate(self))
if delta < 60 {
return "刚刚"
} else if delta < 60 * 60 {
return "\(delta / 60)分钟前"
}
return "\(delta / 3600)小时前"
} else { //表示今天
var dateformatString = "" //非今天
if calendar.isDateInYesterday(self) {
dateformatString = "昨天 HH:mm"
} else {
//unitflay ,fromDate ,toDate
let result = calendar.components(.Year, fromDate: self, toDate: NSDate(), options: [])
if result.year == 0 {
dateformatString = "MM-dd HH:mm" //当年 MM-dd HH:mm(一年内)
} else {
dateformatString = "yyyy-MM-dd HH:mm" //非当年 yyyy-MM-dd HH:mm(更早期)
}
}
//统一计算所有的时间描述
let df = NSDateFormatter()
df.dateFormat = dateformatString
return df.stringFromDate(self)
}
}
}
```
很好用的时间分类,有类似项目可以直接移植到你的项目中