• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

SwiftiOS日期操作:NSDate、NSDateFormatter

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
[objc] view plaincopy
 
  1. // 1、初始化  
  2. // 初始化一个当前时刻对象  
  3. var now = NSDate()  
  4. // 初始化一个明天当前时刻对象  
  5. var tomorrow = NSDate(timeIntervalSinceNow: 24*60*60)  
  6. // 初始化一个昨天当前时刻对象  
  7. var yestoday = NSDate(timeInterval: -24*60*60, sinceDate: now)  
  8. // 初始化一个 2001-01-01 08:00:00 1小时后的时刻对象  
  9. var date1 = NSDate(timeIntervalSinceReferenceDate: 3600)  
  10. // 初始化一个 1970-01-01 08:00:00 1小时后的时刻对象  
  11. var date2 = NSDate(timeIntervalSince1970: 3600)  
  12.   
  13. // 2、获取时间描述  
  14. var dateDescription = now.description  
  15.   
  16. // 3、获取时间间隔  
  17. // 获取今天到明天的时间间隔  
  18. var interval1 = tomorrow.timeIntervalSinceDate(now)  
  19. // 获取今天到明天的时间间隔  
  20. var interval2 = tomorrow.timeIntervalSinceNow  
  21. // 获取 2001-01-01 08:00:00 到今天的时间间隔  
  22. var interval3 = now.timeIntervalSinceReferenceDate  
  23. // 获取 1970-01-01 08:00:00 到今天的时间间隔  
  24. var interval5 = now.timeIntervalSince1970  
  25.   
  26. // 4、随机返回一个不可能达到的未来时间、过去时间  
  27. date1 = NSDate.distantFuture() as NSDate  
  28. date2 = NSDate.distantPast() as NSDate  
  29.   
  30. // 5、时间相加  
  31. // 返回一个后天当前时刻对象(在明天基础上再加上一天的时间)  
  32. var theDayAfterTomorrow = tomorrow.dateByAddingTimeInterval(24*60*60)  
  33.   
  34. // 6、时间比较  
  35. // 比较两个时间对象是否相同返回布尔值(由于精度问题,isTheSameDate 为 false)  
  36. var isTheSameDate = theDayAfterTomorrow.isEqualToDate(NSDate(timeInterval: 2*24*60*60, sinceDate: now))  
  37. // 返回两个时间中较早的一个时间  
  38. var earlierOne = now.earlierDate(tomorrow)  
  39. // 返回两个时间中较晚的一个时间  
  40. var laterOne = now.laterDate(tomorrow)  
  41. // 比较两个时间对象是否相同并返回 NSComparisonResult 值  
  42. var compareResult = now.compare(tomorrow)  

2、日期转换(NSDateFormatter)

[objc] view plaincopy
 
  1. // 方式1:用已有日期格式进行转换  
  2. var dateFormatter1 = NSDateFormatter()  
  3. dateFormatter1.dateStyle = NSDateFormatterStyle.MediumStyle  
  4. dateFormatter1.timeStyle = NSDateFormatterStyle.MediumStyle  
  5. var now = NSDate()  
  6. // Date 转 String  
  7. var nowString = dateFormatter1.stringFromDate(now)      // Mar 24, 2015, 9:00:00 PM  
  8. // String 转 Date  
  9. now = dateFormatter1.dateFromString(nowString)!  
  10.   
  11. // 方式2:自定义日期格式进行转换  
  12. var dateFormatter2 = NSDateFormatter()  
  13. dateFormatter2.dateFormat = "yyyy-MM-dd HH:mm:ss"  
  14. // Date 转 String  
  15. nowString = dateFormatter2.stringFromDate(now)          // 2015-03-24 21:00:00  
  16. // String 转 Date  
  17. now = dateFormatter2.dateFromString(nowString)!  

3、扩展

NSDateFormatter 中提供了修改月份、星期等字符的方法,具体有兴趣的话可以参考官方文档。
关于日历(NSCalendar)、日期组件(NSDateComponents)的详细介绍后续补充。

4、结语

NSDate Class Reference

NSDateFormatter Class Reference


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
iosApp沙盒(sandbox)模型文件目录详解Swift3版本发布时间:2022-07-13
下一篇:
CoreBluetooth Central模式 Swift版发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap