我有一个将时间从12小时转换为24小时的问题。为此,我做了所有必需的事情,并遵循了所有堆栈溢出的答案,但这并没有帮助我。我确实需要做的是,我有一个NSString对象,它在12个小时内(例如6:00 pm)有时间(不是日期),我需要在24小时(18:00)内更改它。这是我为此所做的:

NSString* dateString = startTime;
NSDateFormatter* fmt = [NSDateFormatter new];
[fmt setDateFormat:@"HH:mm"];
NSDate* date = [fmt dateFromString:dateString];


但这会返回我nil日期。这里可能缺少什么?

更新:

还有一件事,12小时的时间给了我正确的结果,但是'am'和'pm'是小写字母,因此是否有任何程序将它们用大写字母表示。

最佳答案

NSString* dateString = @"6:00 pm";
NSDateFormatter* dateFormat = [NSDateFormatter new];
[dateFormat setDateFormat:@"h:mm a"];
NSDate* date = [dateFormat dateFromString:dateString];
[dateFormat setDateFormat:@"H:mm"];
return [dateFormat stringFromDate: date];

10-08 07:29