想要得知有關日期的參數就必須使用 NSDate,由於從 NSDate 得到的資料實在是太多太雜,因此就避免不了使用 NSDateFormatter 來格式化(正規化)這些資訊,接下來我們就來探討,到底有哪些格式化的參數是我們可以用的。
首先,先介紹一下如何從 NSDate 中取得日期的相關料,並進行所謂的格式化,第一步當然是宣告一個 NSDate 型態的變數,並取得當下的日期資料。
NSDate *date = [NSDate date];
接下來就是宣告一個 NSDateFormatter 型態的變數,並做格式化的設定。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"輸入正規化參數 ex:YYYY-MM-d"];
最後,就是將我們所得到的日期資料進行格式化。
NSString *correctDate = [formatter stringFromDate:date];
完成上述步驟之後,字串 correctDate 就存放的格式化好的日期資料,下面我們將列出所有可能的格式化參數以供參考。
與時間相關
參數 代表意義
a AM/PM (上午/下午)
K 0~11 有0時的12小時制
h 1~12 12小時制
H 0~23 有0時的24小时制
k 1~24 24小時制
m 0~59 分鐘
s 0~59 秒數
s 秒數的個位數
A 0~86399999 一天當中的第幾微秒
v~vvv 一般的GMT時區縮寫
vvvv 一般的GMT時區名稱
z~zzz 具體的GMT時區縮寫
zzzz 具體的GMT時區名稱
與日期相關
參數 代表意義
d 1~31 日期
D 1~366 一年的第幾天
e 1~7 一週的第幾天
c/cc 1~7 一週的第幾天,星期日為第一天
ccc 星期幾縮寫
E~EEE 星期幾縮寫
cccc 星期幾全名
EEEE 星期幾全名
F 1~5 每月第幾周,一周的第一天為周一
w 1~5 每月第幾周,一周的第一天為周日
w 1~53 一年的第幾周,從去年的最後一個周日算起,一周的第一天為周日
L/LL 1~12 第幾個月
M/MM 1~12 第幾個月
LLL 月份縮寫
MMM 月份縮寫
LLLL 月份全名
MMMM 月份全名
q/qq 1~4 第幾季
Q/QQ 1~4 第幾季
qqq 季度縮寫
QQQ 季度縮寫
qqqq 季度全名
QQQQ 季度全名
u 完整年份
y/yyyy 完整年份
Y/YYYY 完整年份,從星期天開始的第一周算起
yy/yyy 兩位數的年份
YY/YYY 兩位數的年份,從星期天開始的第一周算起
特殊用途
參數 代表意義
g Julian Day Number,從4713 BC一月一日算起
G~GGG BC/AD 西元前後縮寫
GGGG 西元前後全名
這裡只有列出幾個常用常用參數,還有一些小技巧並沒有詳述,例如今天是 15 號,輸入參數 d 或是 dd 皆可以得到數值 15,可是輸入 ddd 卻會得到數值 015,而輸入 dddd 又會得到 0015,其他的參數也可以此類推,有興趣的讀者們可以自行實驗。
沒有留言:
張貼留言