Swift
時間處理類(給Date添加一個Extension)
//
// Date-Extension.swift
// Swift_時間處理
//
// Created by HarrySun on 2017/8/4.
// Copyright ? 2017年 Mobby. All rights reserved.
//
import Foundation
extension Date{
static func createDateString(createAtStr : String) -> String {
// 1.創(chuàng)建時間格式化對象
let fmt = DateFormatter()
fmt.dateFormat = "EEE MM dd HH:mm:ss Z yyyy"
fmt.locale = Locale(identifier: "en") as Locale!
// 2.將字符串時間券躁,轉(zhuǎn)成NSDate類型
guard let createDate = fmt.date(from: createAtStr) else{
return ""
}
// 3.創(chuàng)建當(dāng)前時間
let nowDate = Date()
// 4.計算創(chuàng)建時間和當(dāng)前時間的時間差
let interval = Int(nowDate.timeIntervalSince(createDate))
// 5.對時間間隔處理
// 5.1. 顯示剛剛
if interval < 60{
return "剛剛"
}
// 5.2. 10分鐘前
if interval < 60 * 60 {
return "\(interval / 60)分鐘前"
}
// 5.3. 11個小時前
if interval < 60 * 60 * 24{
return "\(interval / (60 * 60))小時前"
}
// 5.4 創(chuàng)建日歷對象
let calendar = Calendar.current
// 5.5. 處理昨天數(shù)據(jù): 昨天 12:23
if calendar.isDateInYesterday(createDate){
fmt.dateFormat = "昨天 HH:mm"
let timeString = fmt.string(from: createDate)
return timeString
}
// 5.6 處理一年之內(nèi): 02-22 12:22
let cmps = calendar.dateComponents([Calendar.Component.year], from: createDate, to: nowDate)
if cmps.year! < 1{
fmt.dateFormat = "MM-dd HH:mm"
let timeString = fmt.string(from: createDate)
return timeString
}
// 5.7 超過一年:2016-02-12 13:22
fmt.dateFormat = "yyyy-MM-dd HH:mm"
let timeString = fmt.string(from: createDate)
return timeString
}
}
方法調(diào)用
let createAtStr = "Fri Aug 04 14:43:50 +0800 2017"
let createAtText = Date.createDateString(createAtStr: createAtStr)
print(createAtText)