2011-06-16 130 views
0

我有2 NSStringstartTimeendTimeiphone中的分隔时间为30分钟间隔

开始时间= 10:00 AM
结束时间= 7:00 PM

现在我想在30分钟的间隔分割的时间,所以我可以得到的时间是这样的:

10:00 AM 10:30 AM 11:00 AM 11:30 AM .......... until 7:00 PM。

我试图像这样:

NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init]; 
[timeFormat setDateFormat:@"HH:mm"]; 
NSDate* fromTime = [timeFormat dateFromString:startTime]; 
NSDate* toTime = [timeFormat dateFromString:endTime]; 

,但我发现了从fromTime = 1970-01-01 6:00:00 +0000为startTime = 11:30

任何人的价值有任何想法,如何做到这一点?

回答

1

NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init]; 
[timeFormat setDateFormat:@"hh:mm a"]; 
NSDate* fromTime = [timeFormat dateFromString:startTime]; 
NSDate* toTime = [timeFormat dateFromString:endTime]; 

NSLog(@"Start time %@",fromTime); 
NSLog(@"End time %@",toTime); 

NSDate *dateByAddingThirtyMinute; 

dateByAddingThirtyMinute = [fromTime dateByAddingTimeInterval:1800]; 

NSLog(@"Time after 30 min %@",dateByAddingThirtyMinute); 

尝试上面的代码。

+0

它在这行代码中崩溃。 '无法识别的选择器' dateByAddingThirtyMinute = [timeFormat dateByAddingTimeInterval:1800]; – Hisenberg 2011-06-16 13:04:52

+0

我编辑了这一行。对不起,语法错误。请检查。 – 2011-06-16 13:31:52

+0

也不能工作..'fromTime'和'toTime'返回'null' – Hisenberg 2011-06-16 15:37:54

1

这可能只是因为在使用dateFromString时没有提供足够的信息。如果您只给出hh:mm,那么日期的其余部分可能会给您带来几个问题。

如果您只需要显示30分钟的间隔,并且它仅在同一天的两次之间(且日期无关紧要),那么完全避免日期并仅手动计算他们俩。您可以轻松地将开始时间和结束时间解析为小时和分钟整数,然后从那里开始。

希望这会有所帮助。