Objective c 如何从NSDateFormatter计算时间差
我使用以下代码将2个标签设置为当前时间:Objective c 如何从NSDateFormatter计算时间差,objective-c,xcode,Objective C,Xcode,我使用以下代码将2个标签设置为当前时间: NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"hh:mma"]; time2.text = [dateformatter stringFromDate:[NSDate date]]; [dateformatter release]; labelCo
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"hh:mma"];
time2.text = [dateformatter stringFromDate:[NSDate date]];
[dateformatter release];
labelCount++;
单击按钮时,标签1将更改为当前时间,再次单击按钮时,标签2将更改为当前时间,但我希望能够更改第三个标签以显示这些时间之间的差异。任何帮助/指导都将不胜感激。[date2 TimeIntervalsInceetDate:date1]将提供以秒为单位的时间间隔,但如果您希望将差值显示为小时:分钟,则此方法也适用
NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1];
- (IBAction)updateTime:(id)sender {
static NSUInteger labelCount = 0;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mma"];
NSDate *date1 = nil;
NSDate *date2 = nil;
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *dateComponents;
switch (labelCount) {
case 0:
self.time1.text = [dateFormatter stringFromDate:[NSDate date]];
labelCount++;
break;
case 1:
self.time2.text = [dateFormatter stringFromDate:[NSDate date]];
labelCount++;
break;
case 2:
date1 = [dateFormatter dateFromString:self.time1.text];
date2 = [dateFormatter dateFromString:self.time2.text];
NSUInteger calendarUnits = NSHourCalendarUnit | NSMinuteCalendarUnit;
dateComponents = [calendar components:calendarUnits fromDate:date1 toDate:date2 options:0];
self.time3.text = [NSString stringWithFormat:@"%i:%i", [dateComponents hour], [dateComponents minute]];
labelCount = 0;
break;
default:
break;
}
}
注意:如果您没有使用arc,那么您需要将适当的版本添加到此代码中