对NSDate对象的时间做"友好化处理"
2016-04-04 20:25
316 查看
1.新建一个
代码如下:
2.使用 NSDate对象,直接访问descDate属性
Swift File, 取名NSDate+Category
代码如下:
// // NSDate+Category.swift import UIKit extension NSDate { /** 将时间字符串转换为NSDate */ class func dateWithStr(time: String) -> NSDate { // 1.创建formatter let formatter = NSDateFormatter() // 2.设置时间的格式 formatter.dateFormat = "EEE MMM d HH:mm:ss Z yyyy" // 3. 设置时间的区域(真机必须设置,否则可能不会转换成功) formatter.locale = NSLocale(localeIdentifier: "en") // 4.转换(转换好的时间是去除时区的时间) let createdDate = formatter.dateFromString(time)! return createdDate } /** 刚刚(一分钟内) X分钟前(一小时内) X小时前(当天) 昨天 HH:mm(昨天) MM-dd HH:mm(一年内) yyyy-MM-dd HH:mm(更早期) */ var descDate:String { let calendar = NSCalendar.currentCalendar() // 1.判断是否是今天 if calendar.isDateInToday(self) { // 获取当前时间和系统时间的差(秒) let since = Int(NSDate().timeIntervalSinceDate(self)) if since<60 { return "刚刚" } if since < 60*60 { return "\(since/60)分钟前" } return "\(since / (60 * 60))小时前" } // 2.判断是否是昨天 var formatterStr = "HH:mm" if calendar.isDateInYesterday(self) { formatterStr = "昨天:" + formatterStr }else{ // 一年以内 formatterStr = "MM-dd HH:mm" // 处理更早时间 let comps = calendar.components(NSCalendarUnit.Year, fromDate: self, toDate: NSDate(), options: NSCalendarOptions(rawValue: 0)) if comps.year >= 1 { formatterStr = "yyyy-MM-dd HH:mm" } } // 创建formatter let formatter = NSDateFormatter() formatter.dateFormat = formatterStr formatter.locale = NSLocale(localeIdentifier: "en") return formatter.stringFromDate(self) } }
2.使用 NSDate对象,直接访问descDate属性
let createDate = NSDate.dateWithStr(created_at!) created_at = createDate.descDate
相关文章推荐
- 第四周总结
- 8.8 shutil--高级的文件操作
- 学习ubuntu远程桌面(二):远程桌面会话管理
- 8.8 shutil--高级的文件操作
- Centos7安装完毕后无法联网的解决方法
- 正常启动
- 学习ubuntu远程桌面(一):配置远程桌面
- 【POJ1637】Sightseeing tour【最大流】【混合图欧拉回路】
- spring MVC
- 算法 - 斐波那契数列
- http 错误代码表
- 利用分治算法——在真币中找出伪币
- 我是一个线程(修订版)
- Activiti 流程实例、任务、执行对象及相关的表
- Linux内核设计第七周学习总结 Linux内核如何装载和启动一个可执行程序
- jsp知识点
- 【BZOJ4316】小C的独立集
- 记一次报错(路径方面)
- 【ZOJ 1003】 Crashing Balloon
- ORACLE 毫秒与日期的相互转换