1.NSDateComponents
(1).用于計算未來或過去的時間
(2).計算時間差
2.NSDateFormatter
(1).NSDate到字符串的轉換
(2).字符串到NSDate的轉換
import UIKit
var str = "Hello, playground"
let currentDate = NSDate()
let dateFormatter = NSDateFormatter()
// 指定dataFormatter的dateStyle, 用NSDateFormatterStyle枚舉的格式
dateFormatter.dateStyle = .FullStyle
var convertedDate = dateFormatter.stringFromDate(currentDate)
//自定義dataFormatter
dateFormatter.dateFormat = "yyyy年MM月dd日HH時mm分ss秒"
convertedDate = dateFormatter.stringFromDate(currentDate)
//字符串轉NSDate
var dateString1 = "2000年01月11日13時15分12秒"
var date1 = dateFormatter.dateFromString(dateString1)
// NSDateComponents
let calendar = NSCalendar.currentCalendar()
// calendar用一個date對象轉換為dateComponents
// components第二個參數是NSDate對象,第一個參數是想獲得的日期的某部分
let dateComponents = calendar.components([NSCalendarUnit.Day, NSCalendarUnit.Month, NSCalendarUnit.Year], fromDate: currentDate)
dateComponents.day
dateComponents.month
dateComponents.year
// NSDateComponents轉換為NSDate
let components = NSDateComponents()
components.year = 2000
components.month = 1
components.day = 11
components.hour = 11
components.minute = 23
var date2 = calendar.dateFromComponents(components)
date2
dateFormatter.dateFormat = "yyyy:MM:dd"
var dateString11 = "2011:01:03"
var dateString22 = "2011:01:10"
var date11 = dateFormatter.dateFromString(dateString11)
var date22 = dateFormatter.dateFromString(dateString22)
// earlierDate。如果date11比date22早返回date11,laterDate同理
let result1 = date11?.earlierDate(date22!)
// 用compare比較
if date11?.compare(date22!) == .OrderedAscending {
print("date11比較小")
}
// 計算日期
// 當前時間加上1個月零11天
let monthsToAdd = 1
let daysToAdd = 11
let c1 = NSCalendar.currentCalendar().dateByAddingUnit(.Month, value: monthsToAdd, toDate: currentDate, options: [])
c1
let c2 = NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: daysToAdd, toDate: c1!, options: [])
c2
let newDateComponents = NSDateComponents()
newDateComponents.month = 1
newDateComponents.day = 10
let c3 = NSCalendar.currentCalendar().dateByAddingComponents(newDateComponents, toDate: currentDate, options: [])
// 計算日期的差值
// 用NSDateComponentsFormatter比較
let dateComponentsFormatter = NSDateComponentsFormatter()
dateComponentsFormatter.unitsStyle = .Full
let interval = date22?.timeIntervalSinceDate(date11!)
dateComponentsFormatter.stringFromTimeInterval(interval!)
//
dateComponentsFormatter.allowedUnits = [.Year, .Month, .Day, .Hour, .Minute, .Second]
let result2 = dateComponentsFormatter.stringFromDate(date11!, toDate: date22!)