2010-01-26 9 views
17

Cómo deshabilitar u ocultar AM/PM en UIDatePicker de reconstrucción de códigos/interfaz?Cómo deshabilitar AM/PM en UIDatePicker

Quiero tener el modo selector de 24 horas de tiempo en UIDatePicker. Por favor, ayuda

+0

como respondida aquí http://stackoverflow.com/questions/1151335/can-i-localize-a-uidatepicker/2265984#2265984 y aquí http://stackoverflow.com/questions/2894161/uidatepicker-problem-localizing/2918507 # 2918507, la pantalla del seleccionador depende de la configuración del país, no de la configuración del idioma. En su ejemplo, está cambiando la configuración regional del idioma únicamente. –

+0

Para iOS 6 puede ver mi respuesta http://stackoverflow.com/a/12975871/1376032 – FunkyKat

Respuesta

6

yo sepa que no puede (dentro de los límites de SDK). El AP/PM desaparecerá si el usuario elige usar el formato de 24 horas. Haga su propio UIPickerView en caso de que esto sea importante.

10

Según la documentación, debe poder establecer la propiedad locale de UIDatePicker en una configuración regional que utiliza un formato de 24 horas.

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"da_DK"]; 
[datePicker setLocale:locale]; 
[locale release]; 

Por desgracia hay un problema que provocaba tanto simulador y dispositivo para continuar a la disposición del selector de fecha de acuerdo con las preferencias de los usuarios internacionales.

Como usted sugiere, tiene que rodar su selector de fechas ganado para poder mostrar un selector de 24 hrs.

+1

Intenté que en_GB y dk_DK no funcione en el simulador ni en el dispositivo. Pero noté que si estableces el formato de 24 horas en la configuración de iPhone, entonces UIDatepicker muestra el tiempo de 24 horas. ¿Debo hacer mi propio UIPickerView o hay alguna forma de lograr esto? –

+0

Me equivoqué en mi respuesta original (ahora se actualiza), ni el dispositivo ni el simulador funcionan. Se ha presentado un informe de error con Apple. Por ahora, haría lo que me sugieras, hazlo por ti mismo. –

+0

No es un error, solo está cambiando un idioma, aunque en realidad depende de la configuración del país. –

-3

Esto elimina la AM/PM en el selector ...

UIDatePicker *myDatePicker = [[UIDatePicker alloc]init]; 
[myDatePicker setDatePickerMode:UIDatePickerModeDate]; 
+4

¡También elimina el tiempo! No creo que esto sea lo que se requiere. – jrturton

1

la AM/PM está relacionado con la configuración regional del iPhone. Puede forzar la configuración regional del selector a algo que no tiene AM/PM como ro_RO o en caso de que quiera todo el tiempo con AM/PM, puede ir con en_US. Para la configuración de esto, puede hacerlo en el diseñador en el lado derecho en virtud de la configuración regional como Inglés (Estados Unidos) o por código

[timePicker setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US"]];

0

Sé que esto es viejo ... pero yo estaba buscando en este recientemente y encontré esto a través de algunas pruebas:

[datePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_FR"]]; 

esto básicamente me dice que el "lenguaje" es Inglés (el "es" parte) y el "estilo de tiempo" es el francés (que es tiempo de 24 horas por defecto) (la parte "FR") Combiné los dos a través de prueba y error y descubrí que estaba funcionando para lo que quería, que era solo tener un selector de "Fecha y hora" que también seleccionara las 24 horas (no hay una sección AM/PM en el selector, en inglés texto).

El problema con esto es, cuando agarras la fecha aquí, la configuración regional puede estar equivocado ->

- (void)changeDate:(UIDatePicker *)sender { 

Así que hacer esto para fijar la localización en la parte del cambio de selección de fecha:

[sender setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_FR"]]; 
Cuestiones relacionadas