iOS 封装一个Model 处理返回时间

在项目开发中从服务器中请求下来的时间想要处理

创建 Time 类 继承NSObject

  • Time.h
#import <Foundation/Foundation.h>

@interface Time : NSObject

+ (NSString *)handleDate:(NSString *)dateString;
+ (NSString *)timeIntervalToDate:(NSString *)timeinterval;

@end
  • Time.m
#import "Time.h"

@implementation Time

/*
 传入时间与现在时间差距在60秒以内,输出@“刚刚”
 1个小时以内,输出@“**分钟”
 差距1-24小时以内,输出@“**小时前”
 差距大于一天,输出@“**天前”
 差距大于30天,输出@“**个月前”
 差距大于365天,输出@“完整日期”
 */

// 处理后返回
+ (NSString *)handleDate:(NSString *)dateString {

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

    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];

    NSDate *date = [dateFormatter dateFromString:dateString];

    NSTimeInterval timeInterval = date.timeIntervalSinceNow;
    double time = -(timeInterval - 28800);
    NSString *backString;
    if (time < 60 && time > 0) {
        backString = @"刚刚";
    } else if (time > 60 && time < 3600 ) {
        int Minute = time / 60;
        backString = [NSString stringWithFormat:@"%d 分钟",Minute];

    } else if (time > 3600 && time < 86400) {
        int Hour = time / 3600;
         backString = [NSString stringWithFormat:@"%d 小时",Hour];

    } else if (time > 86400 && time < 2592000) {
        int Day = time / 86400;
         backString = [NSString stringWithFormat:@"%d 一天",Day];

    } else if (time > 2592000 && time < 31104000) {
        int Month = time / 2592000;
         backString = [NSString stringWithFormat:@"%d 一月",Month];

    } else if (time > 31104000) {
        return dateString;
    }


    return backString;
}


// 从服务器请求下来的
+ (NSString *)timeIntervalToDate:(NSString *)timeinterval {

    NSTimeInterval time = [timeinterval doubleValue]; //因为时差问题要加8小时 == 28800 sec
    NSDate *detailDate = [NSDate dateWithTimeIntervalSince1970:time];

    //实例化一个NSDateFormatter对象
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    //设定时间格式,这里可以设置成自己需要的格式
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    NSString *currentDateStr = [dateFormatter stringFromDate:detailDate];

    return currentDateStr;
}

@end

这是我项目中的,从服务器获取,然后返回输出
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值