将string转换为时间格式返回零数据

我的Json是

{ "MinPerAppointment": "30", "OpeningTime": "12:05" } 

现在,我想添加30到12:05,这应该是12:35,我无法得到如何格式化,所以,我用NSdate

 NSString *str_MinPerAppointment = timeDetailData.minPerAppointment; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"HH:mm"]; NSDate *myDate = [dateFormatter dateFromString:str_MinPerAppointment]; NSString *dateInString = [dateFormatter stringFromDate:myDate]; NSLog(@"New AppointMentValue :%@",dateInString); 

我得到新的AppointMentValue 为零

我不认为你需要使用NSDate格式。 简单地将HH:MM转换为分钟(或秒,如果你处理它们),做你的math,然后转换回来。

就像是:

 NSString *time = @"12:30"; int addMinutes = 30; int hh, mm; if (sscanf([time UTF8String], "%d:%d", &hh, &mm) == 2) { int minutes = (hh * 60) + mm; minutes += addMinutes; hh = minutes / 60; mm = minutes - (hh * 60); hh %= 24; // day roll-over NSString *newTime = [NSString stringWithFormat:@"%02:%02d", hh, mm]; } else { NSLog(@"Invalid time value: %@", time); } 

如果你想使用NSDateFormatter/NSDate试试这个 –

 NSString *str_MinPerAppointment = @"30"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"HH:mm"]; NSDate *myDate = [dateFormatter dateFromString:@"12:05"] ; NSString *dateInString = [dateFormatter stringFromDate:[myDate dateByAddingTimeInterval:60*[str_MinPerAppointment integerValue]]]; NSLog(@"New AppointMentValue :%@",dateInString);