Configuración de NSDate en un "TimePicker" con formato de 24 a 12 horas xcode

Estoy trabajando con algunos objetos de NSDate, y bueno, uso mi iPhone con formato de 24 horas, así que cuando estaba probando mi aplicación, todo fue bien, pero uno de mis amigos probó la aplicación en su iPhone, pero usa 12 horas. Después de algunas investigaciones, descubrí que el problema era la fecha, y no tengo idea de por qué lo uso para configurar un selector de fecha y un selector de tiempo, así que leí algunos valores de una base de datos (sí, he comprobado el los valores y son correctos, no es un problema de valor), por lo que todos estos datos se formatean y se juntan como NSDate, luego, configuro el selector de fecha y el selector de tiempo con esta fecha que acabo de crear

NSDateFormatter *currentDate = [[[NSDateFormatter alloc] init] autorelease];
[currentDate setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate * startDate =[currentDate dateFromString:[NSString stringWithFormat:@"%d-%d-%d %d:%d",yearVal,monthVal,dayVal,hourVal,minVal]];
[datePicker setDate:startDate];
[timePicker setDate:startDate];

Entonces, yearVal, monthVal, dayVal, hourVal, minVal son todos NSIntegers ... la cosa es que funciona perfectamente si su iPhone / iPod está usando 24 horas en la configuración de su reloj, pero si está usando el formato de 12 horas, se bloquea y muestra este mensaje de error

> *** Assertion failure in -[UIDatePickerView _updateBitsForDate:forced:andReload:animateIfNeeded:], /SourceCache/UIKit/UIKit-1914.85/UIDatePicker.m:1200 2012-06-29
> 01:19:15.753 MyApp[1215:707] *** Terminating app due to uncaught
> exception 'NSInternalInconsistencyException', reason: 'Invalid
> parameter not satisfying: date'
> *** First throw call stack: (0x3710188f 0x34e06259 0x37101789 0x379403a3 0x31042807 0x30f616c5 0x30f61563 0x31042385 0xf48ef 0xf7bd3
> 0x30e0ec8b 0x30e1b1e9 0x30e1b059 0x30e1af3f 0x30e1a7c1 0x30e1a503
> 0x30e0eaff 0x30e0e7d5 0xdd945 0x30e8793d 0x30f01627 0x37972933
> 0x370d5a33 0x370d5699 0x370d426f 0x370574a5 0x3705736d 0x33816439
> 0x30e03cd5 0xd4cbb 0xd4c60) terminate called throwing an
> exception(gdb)

Entonces, si tiene alguna idea de cómo solucionar este problema, agradecería su ayuda.

oh, y he leído que HH devuelve horas en formato de 24 horas, bueno, todas mis aplicaciones usan HH, así que no entiendo por qué sigo viendo algo de "a.m." o "p.m." en algunos de los NSLogs imprimo para depurar

Gracias por adelantado

oh perdon casi me olvido si comento las lineas

[datePicker setDate:startDate];
[timePicker setDate:startDate];

la aplicación no falla, pero, por supuesto, no muestra la hora y la fecha que necesito

NOTA: Necesito usar el formato de 24 horas, si decido seleccionar el formato con am pm tendré que cambiar todas las aplicaciones, y bueno, no tengo tiempo suficiente para eso

Respuestas a la pregunta(1)

Su respuesta a la pregunta