我试图减去两个不同的时间值
**目标: - **我想减去这个值得到两次从服务器获得的差异
下面是我的方法
self.start=[jsonDict valueForKey:@"start_time"];
self.end=[jsonDict valueForKey:@"end_time"];
self.datefj=[jsonDict valueForKey:@"date"];
NSLog(@"%@",self.start);
NSLog(@"%@",self.end);
NSLog(@"%@",self.datefj);
self.date1fj=[NSString stringWithFormat:@"%@ %@",self.datefj,self.start];
self.date2fj=[NSString stringWithFormat:@"%@ %@",self.datefj,self.end];
//NSTimeInterval secondsBetween = [_end timeIntervalSinceDate:_start];
//NSArray *hoursMins = [_end componentsSeparatedByString:@":"];
//NSInteger timeInMins = [hoursMins[0] intValue] * 60 + [hoursMins[1] intValue];
NSDateFormatter *df=[[NSDateFormatter alloc] init];
// Set the date format according to your needs
[df setDateFormat:@"dd/MM/YYYY hh:mm"]; //for 12 hour format
//[df setDateFormat:@"MM/dd/YYYY HH:mm "] // for 24 hour format
NSDate *date1 = [df dateFromString:_date1fj];
NSDate *date2 = [df dateFromString:_date2fj];
NSLog(@"%@",date1);
NSLog(@"%@",date2);
NSLog(@"%f is the time difference",[date2 timeIntervalSinceDate:date1]);
}
这是我从服务器获得的数据,我想要开始时间和结束时间之间的差异
2017-06-29 16:37:50.543 Barebones[4204:233648] requestReply cust category: {
date = "29-6-2017";
"end_time" = "17:45";
"market_crash" = true;
"start_time" = "14:28";
}
下面是我的nslog详细信息
2017-06-29 16:37:50.543 Barebones[4204:233648] true
2017-06-29 16:37:53.482 Barebones[4204:233648] 14:28
2017-06-29 16:37:53.483 Barebones[4204:233648] 17:45
2017-06-29 16:37:53.483 Barebones[4204:233648] 29-6-2017
2017-06-29 16:37:58.493 Barebones[4204:233648] (null)
2017-06-29 16:37:58.494 Barebones[4204:233648] (null)
2017-06-29 16:45:47.514 Barebones[4204:233648] 0.000000 is the time difference
提前感谢!! :)
答案 0 :(得分:3)
尝试以下代码
[date1 timeIntervalSinceReferenceDate] - [date2 timeIntervalSinceReferenceDate];
这将有效:)
答案 1 :(得分:1)
问题出在您的日期格式化程序中。我尝试了这样的代码,它对我来说很好。
NSString * start = @"14:28";
NSString * end = @"17:45";
NSString * datefj = @"29-6-2017";
NSString *date1fj =[NSString stringWithFormat:@"%@ %@",datefj,start];
NSString *date2fj =[NSString stringWithFormat:@"%@ %@",datefj,end];
NSDateFormatter *df=[[NSDateFormatter alloc] init];
// Set the date format according to your needs
//[df setDateFormat:@"dd-mm-yyyy hh:mm"]; //for 12 hour format
[df setDateFormat:@"dd-MM-YYYY HH:mm "]; // for 24 hour format
NSDate *date1 = [df dateFromString:date1fj];
NSDate *date2 = [df dateFromString:date2fj];
NSLog(@"%@",date1);
NSLog(@"%@",date2);
NSLog(@"%f is the time difference",[date2 timeIntervalSinceDate:date1]/60);
//编辑以获得正确格式的时间
NSString *formattedTime = [self timeFormatted:[date2 timeIntervalSinceDate:date1]/60];
//创建一个新功能
- (NSString *)timeFormatted:(int)totalSeconds
{
int seconds = totalSeconds % 60;
int minutes = (totalSeconds / 60) % 60;
int hours = totalSeconds / 3600;
return [NSString stringWithFormat:@"%02d:%02d:%02d",hours, minutes, seconds];
}