iOS 前端与后台服务器时间差的计算并转化为天、小时、分钟

有个哥们做物联网的,后台给具体的时间字符串,让iOS端计算出相差的具体时间,精确到天、小时、分钟;由于后台是以字符串形式给的(我也不清楚他们后台咋想的),所以还要转换为Date,用时间戳进行计算,最后将差换算成天、小时、分钟!

-(NSDictionary *)timeStrChangeWithFormatterStr:(NSString *)severTimeStr

{

    NSString * dayString=@"0";

    NSString * hourString=@"0";

    NSString * minuteString=@"0";

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; // ----------设置你想要的格式,hhHH的区别:分别表示12小时制,24小时制

    NSDate* date = [formatter dateFromString:severTimeStr];//------------将字符串@"2017-01-01 08:40:00"formatter转成nsdate

    double severTime=[date timeIntervalSince1970];

    double localSeverTime=[[NSDate date] timeIntervalSince1970];

    double poorTime=localSeverTime-severTime;

    NSNumber *numStage =  [NSNumber numberWithDouble:poorTime];

    NSString *numStr = [NSString stringWithFormat:@"%0.0lf",[numStage doubleValue]];//double类型数据取整

    NSInteger timeInt=[numStr integerValue];

    if (timeInt>=86400)

    {

        dayString = [NSString stringWithFormat:@"%ld", timeInt/86400];

        timeInt-=[dayString integerValue]*86400;

    }

    if (timeInt>=3600 && timeInt<86400) {

        hourString = [NSString stringWithFormat:@"%ld", timeInt/3600];

        timeInt-=[hourString integerValue]*3600;

    }

    if (timeInt<3600) {

        minuteString = [NSString stringWithFormat:@"%ld", timeInt/60];

    }

    return @{@"dayString":dayString,@"hourString":hourString,@"minuteString":minuteString};

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值