2008-10-05 23 views
2

我在嘗試確定用戶是否使用24小時或12小時的時間,並且似乎沒有一種很好的方法可以解決這個問題創建一個NSDateFormatter並搜索週期字段的格式字符串(「A」字符)如何判斷用戶是否使用Cocoa的24小時時間

這裏是我現在在做什麼:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setTimeStyle:NSDateFormatterShortStyle]; 
NSRange range = [[formatter dateFormat] rangeOfString:@"a"]; 
BOOL is24HourFormat = range.location == NSNotFound && range.length == 0; 
[formatter release]; 

其中一期工程,但感覺有點脆弱。必須有更好的方法,對吧?

+0

這絕對是脆弱的。您也可以檢查dateFormat字符串,它使用哪些字母作爲小時。 「H」或「K」表示它在24小時內(分別爲0或1),而「h」或「K」表示它在12小時內(基於1或0)。 – matthias 2013-07-11 16:56:16

回答

2

此信息由NSUserDefaults提供。也許在NSShortTimeDateFormatString鍵下? (當然仍然需要解析)。

(使用

NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]); 

轉儲所有預先定義的用戶的默認值)。

不太清楚爲什麼你想這樣做 - 我敢打賭你有一個很好的理由 - 但也許最好只是使用NSDateFormatter的默認值呢?

0

NSShortTimeDateFormatString已被棄用,我相信它在10.5和更高版本中也不起作用。請參閱10.4和10.5 Foundation發行說明。轉儲所有的默認值是一種很好的方法來取決於界面所不能保證的東西,儘管看看底下發生了什麼可能很有趣。

爲什麼你需要這個?正如schwa所說,如果您不需要知道任何有關本地化演示的信息,那麼一切都會更好。

相關問題