Установка NSDate в «TimePicker» с 24 - 12 часовым форматом xcode

Я работаю с некоторыми объектами NSDate, и хорошо, я использую свой iPhone в формате 24 часа, поэтому, когда я тестировал свое приложение, все прошло нормально, но один из моих друзей попробовал приложение на своем iPhone, но он использует 12 часов формат, после некоторых исследований я обнаружил, что проблема была в дате, и я понятия не имею, почему Я использую это для установки выбора даты и времени, поэтому я считываю некоторые значения из базы данных (да, я проверил значения, и они верны, это не проблема значения), поэтому все эти данные отформатированы и собрать вместе как NSDate, затем я устанавливаю выбор даты и время с этой датой, которую я только что создал

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

Итак, yearVal, monthVal, dayVal, hourVal, minVal - все это NSIntegers ... дело в том, что он отлично работает, если ваш iPhone / iPod использует 24 часа в настройках часов, но, если вы используете формат 12 часов, он вылетает и показывает это сообщение об ошибке

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

Поэтому, пожалуйста, если у вас есть идеи, как это исправить, я был бы признателен за вашу помощь

о, и я прочитал, что HH возвращает часы в 24-часовом формате, хорошо, все мое приложение использует HH, поэтому я не понимаю, почему я продолжаю смотреть некоторые "a.m." или "p.m." в некоторых NSLogs я печатаю для отладки

заранее спасибо

о, извините, я почти забываю, если я комментирую строки

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

приложение не аварийно завершает работу, но, конечно, оно не отображает время и дату, которые мне требуются

ПРИМЕЧАНИЕ. Мне нужно использовать 24-часовой формат, если я решу выбрать формат с часу дня. Мне придется изменить все мое приложение, и у меня нет на это достаточно времени.

Ответы на вопрос(1)

Ваш ответ на вопрос