¿Encuentra si el usuario prefiere el reloj de 12/24 horas?

Tengo un drawRect que hace que la línea de time sea un poco como iCal. Utilizo un bucle for para escribir las horas a lo largo de una vista de desplazamiento. Me preguntaba si A) hay una manera de determinar si el usuario ha elegido un reloj de 12 o 24 horas en la configuration del sistema y B) si hay una manera más eficiente de cambiar las tags de time y luego llamar a una consulta 'si' cada paso del bucle "para". Aclamaciones

 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); 

Las respuestas anteriores suponen que los símbolos "AM" y "PM" están representados en caracteres romanos. Este código adaptado de keyur bhalodiya hace un mejor trabajo en el event handling idiomas como el chino, mediante el uso de los methods AMSymbol y PMSymbol de NSDateFormatter .

 -(BOOL)uses24hourTime { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setLocale:[NSLocale currentLocale]]; [formatter setDateStyle:NSDateFormatterNoStyle]; [formatter setTimeStyle:NSDateFormatterShortStyle]; NSString *dateString = [formatter stringFromDate:[NSDate date]]; NSRange amRange = [dateString rangeOfString:[formatter AMSymbol]]; NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]]; return (amRange.location == NSNotFound && pmRange.location == NSNotFound); } 
 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 }