swift日期转换显示

例:要转"Fri Apr 08 11:16:29 +0800 2016"

调用如下:

let createAtStr = "Fri Apr 02 10:22:29 +0800 2014"

let createAtText = NSDate.createDataString(createAtStr)

给NSDate写扩展如下:

import Foundation

extension NSDate{

class func createDateString(createAtStr :String) ->String{

// 1.创建时间格式化对象

letfmt =NSDateFormatter()

fmt.dateFormat="EEE MM dd HH:mm:ss Z yyyy"

fmt.locale=NSLocale(localeIdentifier:"en")

// 2.将字符串时间,转成NSDate类型

guardletcreateDate = fmt.dateFromString(createAtStr)else{

           return""

}

// 3.创建当前时间

letnowDate =NSDate()

// 4.计算创建时间和当前时间的时间差

letinterval =Int(nowDate.timeIntervalSinceDate(createDate))

// 5.对时间间隔处理

// 5.1.显示刚刚

ifinterval <60{

     return"刚刚"

}

// 5.2.59分钟前

ifinterval <60*60{

      return"\(interval /60)分钟前"

}

// 5.3.11小时前

ifinterval <60*60*24{

       return"\(interval / (60*60))小时前"

}

// 5.4.创建日历对象

letcalendar =NSCalendar.currentCalendar()

// 5.5.处理昨天数据:昨天12:23

ifcalendar.isDateInYesterday(createDate) {

       fmt.dateFormat="昨天HH:mm"

       lettimeStr = fmt.stringFromDate(createDate)

       return timeStr

}

// 5.6.处理一年之内: 02-22 12:22

letcmps = calendar.components(.Year, fromDate: createDate, toDate: nowDate, options: [])

ifcmps.year<1{

        fmt.dateFormat="MM-dd HH:mm"

        lettimeStr = fmt.stringFromDate(createDate)

        returntimeStr

}

// 5.7.超过一年: 2014-02-12 13:22

    fmt.dateFormat="yyyy-MM-dd HH:mm"

    lettimeStr = fmt.stringFromDate(createDate)

    return timeStr

}

}

你可能感兴趣的:(swift日期转换显示)