查找用户是否更喜欢12/24小时时钟?

时间:2011-12-15 12:57:12

标签: iphone objective-c ios ipad

我有一个drawRect,它使时间轴有点像iCal。我使用for循环沿滚动视图写入时间。我想知道A)是否是一种确定用户是否在系统设置中选择了12或24小时时钟的方法,以及B)是否有更有效的方式来更改时间标签,然后每次通过调用'if'查询'for'循环。 干杯

3 个答案:

答案 0 :(得分:6)

早期的答案假设" AM"和" PM"符号用罗马字符表示。通过使用AMSymbol的{​​{1}}和PMSymbol方法,改编自keyur bhalodiya的代码可以更好地处理中文等语言。

NSDateFormatter

答案 1 :(得分:5)

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
[dateFormatter setTimeStyle:NSDateFormatterLongStyle];

if([[dateFormatter dateFormat] rangeOfString:@"a"].location != NSNotFound) {
    // user prefers 12 hour clock
} else {
    // user prefers 24 hour clock
}

答案 2 :(得分:1)

NSDate *today = [NSDate date];
NSString *formattedString = [NSDateFormatter localizedStringFromDate:today dateStyle: kCFDateFormatterNoStyle timeStyle: kCFDateFormatterShortStyle];

NSRange foundRange;
foundRange = [formattedString rangeOfString:"am" options:NSCaseInsensitiveSearch];
if(foundRange.location == NSNotFound) {
    foundRange = [formattedString rangeOfString:"pm" options:NSCaseInsensitiveSearch];
}

BOOL isAMPMSettingOn = (foundRange.location != NSNotFound);