Swift3.0设置微信朋友圈时间显示样式
2016-04-23 23:01
531 查看
把请求下来的时间字符串(requestDateString)转换为NSDate
Swift2.3: //创建formatter let formatter = NSDateFormatter() //设置时间格式 formatter.dateFormat = "EEE MMM d HH:mm:ss Z yyyy" //设置时间区域 formatter.locale = NSLocale(localeIdentifier: "en") //转换为字符串 let requestDate = formatter.dateFromString(requestDateString) Swift3.0: let requestDateString = "*************" let formatter = DateFormatter() formatter.dateFormat = "EEE MMM d HH:mm:ss z yyyy" formatter.locale = Locale.init(identifier: "en") as Locale! let requestDate = formatter.date(from: requestDateString) print(getShowFormat(requestDate: Date.init(timeIntervalSinceNow: -555))) //输出: 9分钟前
把转换好的NSDate转换成要显示的形式
Swift2.3: func getShowFormat(requestDate:NSDate) -> String { //获取当前时间 let calendar = NSCalendar.currentCalendar() //判断是否是今天 if calendar.isDateInToday(requestDate) { //获取当前时间和系统时间的差距(单位是秒) //强制转换为Int let since = Int(NSDate().timeIntervalSinceDate(requestDate)) // 是否是刚刚 if since < 60 { return "刚刚" } // 是否是多少分钟内 if since < 60 * 60 { return "\(since/60)分钟前" } // 是否是多少小时内 return "\(since / (60 * 60))小时前" } //判断是否是昨天 var formatterString = "HH:mm" if calendar.isDateInYesterday(requestDate) { formatterString = "昨天" + formatterString } else { //判断是否是一年内 formatterString = "MM-dd" + formatterString //判断是否是更早期 let comps = calendar.components(NSCalendarUnit.Year, fromDate: requestDate, toDate: NSDate(), options: NSCalendarOptions(rawValue: 0)) if comps.year >= 1 { formatterString = "yyyy-" + formatterString } } //按照指定的格式将日期转换为字符串 //创建formatter let formatter = NSDateFormatter() //设置时间格式 formatter.dateFormat = formatterString //设置时间区域 formatter.locale = NSLocale(localeIdentifier: "en") //格式化 return formatter.stringFromDate(requestDate) } Swift3.0: func getShowFormat(requestDate:Date) -> String { //获取当前时间 let calendar = Calendar.current //判断是否是今天 if calendar.isDateInToday(requestDate as Date) { //获取当前时间和系统时间的差距(单位是秒) //强制转换为Int let since = Int(Date().timeIntervalSince(requestDate as Date)) // 是否是刚刚 if since < 60 { return "刚刚" } // 是否是多少分钟内 if since < 60 * 60 { return "\(since/60)分钟前" } // 是否是多少小时内 return "\(since / (60 * 60))小时前" } //判断是否是昨天 var formatterString = " HH:mm" if calendar.isDateInYesterday(requestDate as Date) { formatterString = "昨天" + formatterString } else { //判断是否是一年内 formatterString = "MM-dd" + formatterString //判断是否是更早期 let comps = calendar.dateComponents([Calendar.Component.year], from: requestDate, to: Date()) if comps.year! >= 1 { formatterString = "yyyy-" + formatterString } } //按照指定的格式将日期转换为字符串 //创建formatter let formatter = DateFormatter() //设置时间格式 formatter.dateFormat = formatterString //设置时间区域 formatter.locale = NSLocale(localeIdentifier: "en") as Locale! //格式化 return formatter.string(from: requestDate as Date) }
相关文章推荐
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift自定义iOS中的TabBarController并为其添加动画
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- Android GridView仿微信朋友圈显示图片
- 简单分析Swift语言的一些基本特征
- Swift与C语言指针结合使用实例
- Swift心得笔记之控制流
- 用Swift构建一个简单的iOS邮件应用的方法
- 苹果公司推出的新编程语言Swift简介和入门教程
- Swift实现iOS应用中短信验证码倒计时功能的实例分享
- 探讨Swift数组和字典
- Swift中的指针操作和使用详细介绍
- Swift中使用正则表达式的一些方法
- Swift心得笔记之运算符
- Swift中使用可选类型完美解决占位问题
- Swift学习笔记之构造器重载