[swift3.0]时间分类,一键搞定

前端之家收集整理的这篇文章主要介绍了[swift3.0]时间分类,一键搞定前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

贡献作者 -【XJDomain】
博客XJ: https://my.oschina.net/shengbingli/blog
GitHub: https://github.com/lishengbing/XJQRCodeToolDemo

时间的分类:Date分类

  1. //
  2. // Date-extension.swift
  3. // swift-时间处理拓展
  4. //
  5. // Created by 李胜兵 on 16/10/25.
  6. // Copyright © 2015年 付公司. All rights reserved.
  7. //
  8.  
  9. import Foundation
  10.  
  11. extension Date {
  12. static func createDateStrint(createAtStr : String) -> String {
  13. // 1.创建时间格式化对象
  14. let fmt = DateFormatter()
  15. fmt.dateFormat = "EEE MM dd HH:mm:ss Z yyyy"
  16. fmt.locale = Locale(identifier: "en")
  17. // 2.将字符串时间转化成NSDate类型
  18. guard let createDate = fmt.date(from: createAtStr) else { return "" }
  19. // 3.创建当前时间
  20. /*
  21. 2016-10-24 17:27:45 +0000
  22. 2016-10-25 06:44:29 +0000 + 8小时才是当前时间,但是我们正好都是+0000,所以不需要转化为东八区
  23. */
  24. let nowDate = Date()
  25. // 4.计算创建时间和当前时间的时间差
  26. let interval = Int(nowDate.timeIntervalSince(createDate))
  27. // 5.根据时间差判断不同的显示
  28. // 5.1小于60秒,显示“刚刚”
  29. if interval < 60 {
  30. return "刚刚"
  31. }
  32. // 5.2小于1小时内,显示多少分钟:59分钟前
  33. if interval < 60 * 60 {
  34. return "\(interval / 60)分钟前"
  35. }
  36. // 5.3小于1天,显示 11小时前
  37. if interval < 60 * 60 * 24 {
  38. return "\(interval / (60 * 60))小时前"
  39. }
  40. // 5.4处理昨天的数据:昨天 12:23
  41. // 创建日历对象
  42. let calender = Calendar.current
  43. if calender.isDateInYesterday(createDate) {
  44. fmt.dateFormat = "昨天 HH:mm"
  45. let timeStr = fmt.string(from: createDate)
  46. return timeStr
  47. }
  48. // http://nshipster.com/nsdatecomponents/
  49. // 5.5处理一年内时间:02-12 12:23
  50. let cmpt = calender.dateComponents([.year],from: createDate,to: nowDate)
  51. if cmpt.year! < 1 {
  52. fmt.dateFormat = "MM-dd HH:mm"
  53. let timeStr = fmt.string(from: createDate)
  54. return timeStr
  55. }
  56. // 5.6超过1年的时间:2014-02-12 13:22
  57. fmt.dateFormat = "yyyy:MM:dd HH:mm"
  58. let timeStr = fmt.string(from: createDate)
  59. return timeStr
  60. }
  61. }

外面调用

let createAtStr = "Tue Oct 23 12:59:30 +0800 2014"
let timeStr = Date.createDateStrint(createAtStr: createAtStr)
print(timeStr)

打印如下:

2014:10:23 12:59

猜你在找的Swift相关文章