ios - 查找两个时间值之间的差异iOS objective-c

标签 ios objective-c time

我正在尝试减去两个不同的时间值

**目标:-**我想减去该值以获得我从服务器获得的两次时间之间的差

下面是我的方法

        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

提前致谢!!:)

最佳答案

问题出在您的日期格式化程序中。我像这样尝试过您的代码,对我来说效果很好。

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];
}

关于ios - 查找两个时间值之间的差异iOS objective-c ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44823599/

相关文章:

ios - iOS 中的自定义 View 和自定义按钮

c# - Monotouch - 取消本地通知

ios - 单击按钮每周一次的本地通知

objective-c - 在 Swift 中导入 Objective-c 框架?

php - 如何判断一个时间范围是否在一个时间范围内? PHP

android - Flutter 中的时差 (Dart)

ios - div 不应该在 iPhone 上的另一个 div 之上

ios - AsyncSocket 在 iPad 的 sleep 模式下崩溃

ios - 我可以以某种方式删除动画以防出现推送转场吗

time - 如何使用 Python 更改 Binance 服务器时间?