2011-09-30 46 views
0

我使用NSDates作爲NSDictionary的鍵,但對於鍵值編碼,我需要一個字符串。重要的是,我需要它不改變跨操作系統或區域設置的表示。當我將它展示給用戶時,我當然會使用NSDateFormatter,但在內部它必須始終保持一致。以字符串形式獲得一致格式的最佳方式是什麼?從NSDate獲取一致的日期格式?

回答

2

使用NSDateFormatter並將時區指定爲GMT,將本地指定爲「en_US_POSIX」。

從蘋果:Data Formatting Guide

如果你有固定格式的日期的工作,你應該首先設置 語言環境的日期格式,以適當的東西,爲您的固定 格式。在大多數情況下,要選擇的最佳語言環境是en_US_POSIX,這是一個 語言環境,專門設計用於產生美式英語結果 ,無論用戶和系統首選項如何。

另一種方法是使用timeIntervalSince1970等方法將NSDate轉換爲NSTimeInterval,然後轉換爲hexascii值以用作鍵。 NSDate返回一個相對於絕對參考日期的時間值 - 即2001年1月1日格林尼治標準時間的第一個時刻。

+0

只需將時間間隔的十進制表示與「date_」相比,將其轉換爲十六進制的前綴更簡單更有效。更有效,因爲即使是十六進制數字也可以以十進制數字開頭,我不確定它會作爲KVC鍵使用。 –

+0

好點,謝謝。 – zaph