要從一個字符串中解析得到準(zhǔn)確的時間,必須要指定正確的格式字符串
,以及對應(yīng)的時區(qū)標(biāo)示
1、日期格式
1.年
y
將年份 (0-9) 顯示為不帶前導(dǎo)零的數(shù)字
yy
以帶前導(dǎo)零的兩位數(shù)字格式顯示年份
yyy
以四位數(shù)字格式顯示年份
yyyy
以四位數(shù)字格式顯示年份
M
將月份顯示為不帶前導(dǎo)零的數(shù)字(如一月表示為 1)
MM
將月份顯示為帶前導(dǎo)零的數(shù)字(例如 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
將日顯示為不帶前導(dǎo)零的數(shù)字(如 1)
dd
將日顯示為帶前導(dǎo)零的數(shù)字(如 01)
4.星期
EEE
將日顯示為縮寫形式(例如 Sun)
EEEE
將日顯示為全名(例如 Sunday)
星期一 Mon Monday
星期二 Tue Tuesday
星期三 Wed Wednesday
星期四 Thu Thursday
星期五 Fri Friday
星期六 Sat Saturday
星期天 Sun Sunday
5.小時
h
使用 12 小時制將小時顯示為不帶前導(dǎo)零的數(shù)字(例如 1:15:15 PM)
hh
使用 12 小時制將小時顯示為帶前導(dǎo)零的數(shù)字(例如 01:15:15 PM)
H
使用 24 小時制將小時顯示為不帶前導(dǎo)零的數(shù)字(例如 1:15:15)
HH
使用 24 小時制將小時顯示為帶前導(dǎo)零的數(shù)字(例如 01:15:15)
6.分鐘
m
將分鐘顯示為不帶前導(dǎo)零的數(shù)字(例如 12:1:15)
mm
將分鐘顯示為帶前導(dǎo)零的數(shù)字(例如 12:01:15)
7.秒
s
將秒顯示為不帶前導(dǎo)零的數(shù)字(例如 12:15:5)
ss
將秒顯示為帶前導(dǎo)零的數(shù)字(例如 12:15:05)
f
顯示秒的小數(shù)部分
ff
將精確顯示到百分之一秒
ffff
將精確顯示到萬分之一秒
用戶定義格式中最多可使用七個 f 符號
8.上午,下午t
使用 12 小時制
中午之前任一小時顯示大寫的 A
中午到 11:59 PM 之間的任一小時顯示大寫的 P
tt
對于使用 12 小時制的區(qū)域設(shè)置
中午之前任一小時顯示大寫的 AM
中午到 11:59 PM 之間的任一小時顯示大寫的 PM
對于使用 24 小時制的區(qū)域設(shè)置,不顯示任何字符
9.時區(qū)
z
顯示不帶前導(dǎo)零的時區(qū)偏移量
zz
顯示帶前導(dǎo)零的時區(qū)偏移量(例如 -08)
zzz
顯示完整的時區(qū)偏移量(例如 -0800)
10. 范例
/// 根據(jù)指定的日期字符串創(chuàng)建日期 /// 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 創(chuàng)建分類
/// 從字符串中解析到準(zhǔn)確時間// 參數(shù) dateString 為時間字符串 formatString 為時間字符串對應(yīng)的格式class func getDate(dateString: String, formatString: String) ->NSDate? { // dateFormatter // 1. 實例化 let df = NSDateFormatter() // 2. 要指定日期的地區(qū),Xcode 6.3 beta 還不需要,地區(qū)需要指定英語 // 注意:在真機調(diào)試的時候,一定要指定區(qū)域,否則以前版本同樣無法轉(zhuǎn)換 df.locale = NSLocale(localeIdentifier: "en") // 3. 設(shè)置日期格式 df.dateFormat = formatString // 4. 生成日期 return df.dateFromString(dateString)}3、日期處理類 NSCalendar
,