要從一個字符串中解析得到准確的時間,必須要指定正確的格式字符串
,以及對應的時區標示
1、日期格式
1.年
2.月
y
將年份 (0-9) 顯示為不帶前導零的數字yy
以帶前導零的兩位數字格式顯示年份yyy
以四位數字格式顯示年份yyyy
以四位數字格式顯示年份
M
將月份顯示為不帶前導零的數字(如一月表示為 1)MM
將月份顯示為帶前導零的數字(例如 01/12/01)MMM
將月份顯示為縮寫形式(例如 Jan)MMMM
將月份顯示為完整月份名(例如 January)
- 一月 Jan January
- 二月 Feb February
- 三月 Mar March
- 四月 Apr April
- 五月 May May
- 六月 Jun June
- 七月 Jul July
- 八月 Aug August
- 九月 Sep September
- 十月 Oct October
- 十一月 Nov November
- 十二月 Dec December
3.日
d
將日顯示為不帶前導零的數字(如 1)dd
將日顯示為帶前導零的數字(如 01)
4.星期
EEE
將日顯示為縮寫形式(例如 Sun)EEEE
將日顯示為全名(例如 Sunday)
- 星期一 Mon Monday
- 星期二 Tue Tuesday
- 星期三 Wed Wednesday
- 星期四 Thu Thursday
- 星期五 Fri Friday
- 星期六 Sat Saturday
- 星期天 Sun Sunday
5.小時
h
使用 12 小時制將小時顯示為不帶前導零的數字(例如 1:15:15 PM)hh
使用 12 小時制將小時顯示為帶前導零的數字(例如 01:15:15 PM)H
使用 24 小時制將小時顯示為不帶前導零的數字(例如 1:15:15)HH
使用 24 小時制將小時顯示為帶前導零的數字(例如 01:15:15)
6.分鐘
m
將分鐘顯示為不帶前導零的數字(例如 12:1:15)mm
將分鐘顯示為帶前導零的數字(例如 12:01:15)7.秒
8.上午,下午
s
將秒顯示為不帶前導零的數字(例如 12:15:5)ss
將秒顯示為帶前導零的數字(例如 12:15:05)f
顯示秒的小數部分ff
將精確顯示到百分之一秒ffff
將精確顯示到萬分之一秒- 用戶定義格式中最多可使用七個 f 符號
t
使用 12 小時制
- 中午之前任一小時顯示大寫的 A
- 中午到 11:59 PM 之間的任一小時顯示大寫的 P
tt
對於使用 12 小時制的區域設置
- 中午之前任一小時顯示大寫的 AM
- 中午到 11:59 PM 之間的任一小時顯示大寫的 PM
- 對於使用 24 小時制的區域設置,不顯示任何字符
9.時區
z
顯示不帶前導零的時區偏移量zz
顯示帶前導零的時區偏移量(例如 -08)zzz
顯示完整的時區偏移量(例如 -0800)10. 范例
/// 根據指定的日期字符串創建日期 /// dateSring 日期字符串 /// 日期字符串格式為:"Sun May 24 13:59:03 +0800 2015" class func createDate(dateSring: String) -> NSDate? { let df = NSDateFormatter() df.locale = NSLocale(localeIdentifier: "ch") df.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy" return df.dateFromString(dateSring) }
2、為NSDate 創建分類
3、日期處理類 NSCalendar/// 從字符串中解析到准確時間 // 參數 dateString 為時間字符串 formatString 為時間字符串對應的格式 class func getDate(dateString: String, formatString: String) -> NSDate? { // dateFormatter // 1. 實例化 let df = NSDateFormatter() // 2. 要指定日期的地區,Xcode 6.3 beta 還不需要,地區需要指定英語 // 注意:在真機調試的時候,一定要指定區域,否則以前版本同樣無法轉換 df.locale = NSLocale(localeIdentifier: "en") // 3. 設置日期格式 df.dateFormat = formatString // 4. 生成日期 return df.dateFromString(dateString) }
。。。