2011年4月12日 星期二

[轉] 關於 NSDateFormatter 的二三事

from : http://www.furnace.idv.tw
想要得知有關日期的參數就必須使用 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,其他的參數也可以此類推,有興趣的讀者們可以自行實驗。

沒有留言:

張貼留言