在12小时UIDatePicker中设置24小时时间

Com*_*mpy 1 objective-c ios ios6

所以我有一个应用程序,其中一些数据从Web服务返回,并相应地进行UIDatePicker调整.日期以以下格式返回:

12-05-2013 16:05 (dd-mm-yyyy hh:mm)
Run Code Online (Sandbox Code Playgroud)

时间以24小时格式存储,但UIDatePicker为12小时或24小时,具体取决于设备上的设置.数据来自JSON数组,是关键的potdd.我正在设置的日期选择器称为potddatepicker.

NSDateFormatter *inputFormat = [[NSDateFormatter alloc] init];
[inputFormat setDateFormat:@"dd-MM-yyy hh:mm"];
NSDate *inputDate = [inputFormat dateFromString: [jsonObjects objectForKey:@"potdd"]];

NSDate *potdd = inputDate;
[_potddatepicker setDate:potdd];
Run Code Online (Sandbox Code Playgroud)

如果日期在12:00之前设置,那么它可以正常工作.但是,如果日期在12之后的24小时内存储,那么它将崩溃并出现以下异常:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: date'
Run Code Online (Sandbox Code Playgroud)

我不是特别想把时间强制为12小时格式只为datepicker然后强制它回到24小时,因为在一些当地人可能会在24小时日期选择器中使用.谁知道我怎么处理这个?我无法更改时间存储在数据库中的格式.

谢谢!

rma*_*ddy 7

您的错误与日期选择器无关.

您使用错误的日期格式来解析字符串.你需要:

[inputFormat setDateFormat:@"dd-MM-yyyy HH:mm"]; // HH is 24-hour, hh is 12-hour
Run Code Online (Sandbox Code Playgroud)

此外,由于您使用的是固定格式,因此应将日期格式化程序的语言环境设置为en_US_POSIX.