Pergunta

Eu realmente só quero saber se o usuário definir o iPhone para o modo de 12 horas para exibição de tempo.

A classe NSLocale parecia estar descrevendo (em termos inespecíficos vagas sem quaisquer exemplos ou métodos aparentemente úteis) que eu estava depois.

Então, eu criei alguns objetos NSLocale assim:

NSLocale *systemLocaleApparently = [NSLocale systemLocale];
NSLocale *currentLocaleWithLotsOfGoodies = [NSLocale autoupdatingCurrentLocale];

Quando eu inspecionar esses objetos usando o depurador ou NSLog(), o melhor que posso chegar é algo ao longo destas linhas:

<CFLocale 0x1278e0 [0x382084f8]>{type = system, identifier = ''} 

A localidade atual tem uma cadeia de ID nela, mas nada mais.

A partir da documentação, eu posso pesquisar valores da localidade, e uma delas é um objeto NSCalendar. Então eu ter isso de volta e ter um olhar para ele, e ele me diz que é "gregoriano".

Tudo o que é aparentemente de uso para alguém ... mas o que eu realmente gostaria é um grande agradável dicionário de atributos que mostram todas as propriedades reais do sistema, principalmente para que a minha NSDateFormatters não manter explodir quando um usuário escolhe formato de 12 horas, embora eu tenha forçado os formatadores para uso local en_US_POSIX e um formato setDate fixo.

(eu tenho certeza NSCalendarDate não costumava ter esses problemas ...)

Espero que eu estou faltando alguma coisa flagrantemente (e provavelmente embaraçosamente) óbvio, mas talvez alguém tipo iria compartilhá-lo comigo. Por favor:)

Foi útil?

Solução

Aqui está uma maneira de dizer se o usuário não definiu seu formato da hora para um formato de 12 ou 24 horas:

NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setTimeStyle:NSDateFormatterMediumStyle];
// Look for H (24-hour format) vs. h (12-hour format) in the date format.
NSString* dateFormat = [formatter dateFormat];
BOOL using24HourClock = [dateFormat rangeOfString:@"h"].location == NSNotFound;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top