Swift4.0處理日期時間

時間的處理,在開發中經常遇見的到,我們洗完處理成年月日時分秒
這裏我寫了一個Date的分類用於處理時間

//使用非常的的方便,只需要傳入時間幾個轉換

//只需傳入型如下面的時間樣式就行
 let creatDate = NSDate.dataWithStr(time: "Sat May 18 16:00:28 +0800 2018")
 label.text = creatDate.descDate

//Date分類代碼如下

//
//  NSDate+category.swift
//  CQWeiBo
//
//  Created by 陳強 on 2018/5/16.
//  Copyright © 2018年 陳強. All rights reserved.
//

import UIKit
extension NSDate{

    class func dataWithStr(time:String)->NSDate{

        let formatter = DateFormatter()
        //轉換時間格式
        formatter.dateFormat = "EEE MMM d HH:mm:ss Z yyyy"
        formatter.locale = NSLocale(localeIdentifier: "en") as Locale?
        //轉換字符串,轉換好的時間去除時區的時間
        let creatDate = formatter.date(from: time)!
        return creatDate as NSDate
    }

    var descDate:String?{
        let calendear = Calendar.current
        //判斷是否是今天
        if calendear.isDateInToday(self as Date) {
            let since = Int(NSDate().timeIntervalSince(self as Date))
            //1.1是否是剛剛
            if since < 60 {
                return "剛剛"
            }
             //1.2多少分鐘以前
            if since < 60 * 60{
                return "\(since / 60)分鐘前"
            }
                  //1.3多少小時以前
            return "\(since / (60 * 60))小時前"
        }

       //2.判斷是否是昨天
        var formatterStr = "HH:mm"
        if calendear.isDateInYesterday(self as Date) {
            formatterStr = "昨天: " + formatterStr

        }else
        {
            //處理一年以內
            formatterStr = "MM-dd " + formatterStr

            //處理更早時間
            let comps = calendear.dateComponents([.year,.month,.day], from: self as Date, to: Date())
            print(comps)

            //按照指定的格式時間轉換爲字符串
            if comps.year! >= 1{

                formatterStr = "yyyy-" + formatterStr
            }

        }

        //創建formatter
        let formatter = DateFormatter()
        //設置時間的格式
        formatter.dateFormat = formatterStr
        //設置時間的區域(真機必須設置,否則可能不能轉換成功)
        formatter.locale = Locale(identifier: "en")

        return formatter.string(from: self as Date)
    }


}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章