2

ユーザーが 24 時間または 12 時間のどちらを使用しているかを判断しようとしていますが、NSDateFormatter を作成して期間フィールドのフォーマット文字列を検索する以外に、これを把握する良い方法はないようです ('a ' キャラクター)

これが私が今していることです:

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

これは機能しますが、ちょっと壊れやすいと感じます。もっと良い方法があるはずですよね?

4

2 に答える 2

2

この情報は NSUserDefaults で提供されます。多分 NSShortTimeDateFormatString キーの下ですか?(もちろん、まだ解析が必要です)。

(使用する

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

定義済みのすべてのユーザー デフォルトをダンプします)。

なぜこれをしたいのかよくわかりません - 正当な理由があるに違いありませんが、代わりに NSDateFormatter のデフォルトを使用するのが最善でしょうか?

于 2008-10-05T22:16:02.217 に答える
0

NSShortTimeDateFormatString は非推奨であり、10.5 以降では事実上機能しないと思います。10.4 および 10.5 Foundation のリリース ノートを参照してください。すべてのデフォルトをダンプすることは、インターフェースによって保証されていないものに依存するための良い方法ですが、内部で何が起こっているかを見るのは面白いかもしれません.

なぜこれが必要なのですか?schwa が言うように、ローカライズされたプレゼンテーションについて何も知らなくても済むようになれば、すべてがうまく機能します。

于 2008-10-06T02:33:30.933 に答える