Einstellen von NSDate in einem "TimePicker" mit 24 - 12 Stunden Format xcode

Ich arbeite mit einigen NSDate-Objekten und benutze mein iPhone im 24-Stunden-Format. Als ich meine App testete, lief alles einwandfrei, aber einer meiner Freunde hat die App auf seinem iPhone ausprobiert, aber er verwendet 12 Stunden Nach einigen Recherchen habe ich herausgefunden, dass das Problem das Datum ist, und ich habe keine Ahnung, warum ich damit einen Datums- und einen Zeitwähler einstelle. Deshalb habe ich einige Werte aus einer Datenbank gelesen (ja, ich habe das überprüft Werte und sie sind korrekt, es ist kein Wertproblem), also werden alle diese Daten formatiert und zu einem NSD-Datum zusammengefasst. Dann setze ich die Datums- und Zeitauswahl mit diesem Datum, das ich gerade erstellt habe

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

Also, yearVal, monthVal, dayVal, hourVal, minVal sind alle NSInteger ... die Sache ist, dass es perfekt funktioniert, wenn Ihr iPhone / iPod 24 Stunden in Ihren Uhreinstellungen verwendet, aber wenn Sie 12 Stunden Format verwenden, es stürzt ab und zeigt diese Fehlermeldung an

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

Wenn Sie also eine Idee haben, wie dies behoben werden kann, würde ich mich über Ihre Hilfe freuen

Oh, und ich habe gelesen, dass HH Stunden im 24-Stunden-Format zurückgibt. Nun, meine gesamte App verwendet HH, daher verstehe ich nicht, warum ich immer wieder "a.m." oder "p.m." In einigen der NSLogs drucke ich zum Debuggen

Danke im Voraus

oh sorry, ich vergesse fast, wenn ich die Zeilen kommentiere

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

Die App stürzt nicht ab, zeigt jedoch nicht die Uhrzeit und das Datum an, die ich benötige

HINWEIS: Ich muss das 24-Stunden-Format verwenden. Wenn ich das Format mit pm auswähle, muss ich meine gesamte App ändern. Dafür habe ich nicht genügend Zeit

Antworten auf die Frage(1)

Ihre Antwort auf die Frage