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 中提供。也许在 NS ShortTimeDateFormatString 键下?(当然仍然需要解析)。

(采用

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 回答