时间与整型数据/时间戳转换

时间:2021-08-20 14:35:22

同样的时间,一个模块服务端传过来的是时间戳,另一个模块服务端又传的是代表时间的nsinteger格式,然后按照既定时间格式显示出来!真特么想不通服务端干嘛同一个东西,非要客户端用两种解析方式,新公司的服务端真的好难沟通,脾气还差,每次跟他说,他就说了几句他的想法后自己盯着屏幕敲代码,你怎么说都当听不到不理你,可怜我们前端的这些好孩纸啊时间与整型数据/时间戳转换时间与整型数据/时间戳转换


分别写两个解析函数,调用就可以了!

1.首先传递的是时间戳的话

-(NSString *)returnDate:(NSInteger)timeStr{

//NSTimeInterval = 1443542400( 服务端的数据)

    NSTimeInterval time=timeStr+28800;//因为时差问题要加8小时 == 28800 sec//这里也可以设置时区来解决

    NSDate *detaildate=[NSDatedateWithTimeIntervalSince1970:time];

    NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];

    [dateFormatter setDateFormat:@"yyyy-MM-dd"];

    NSString *currentDateStr = [dateFormatterstringFromDate: detaildate];

    return currentDateStr;

//currentDateStr = 2015-09-30

}

2.传递过来的是非时间戳的格式数据

-(NSString *)returnDate:(NSInteger)timeStr{

 //timeStr= 20150930

//这里用的是dateFormatter的方法,更简单一点的方法就是用stringWithFormat:和NSRange方法对数据进行拼凑,不过这里加了保险,以防后期会用到NSDate。。。

//NSInteger对应的NSDate

    NSString *string = [NSStringstringWithFormat:@"%ld",(long)timeStr];

    NSDateFormatter *inputFormatter= [[NSDateFormatteralloc] init];

    [inputFormatter setDateFormat:@"yyyyMMdd"];

    NSDate*inputDate = [inputFormatterdateFromString:string]; 

 //NSDate转化成既定格式的时间格式

    NSDateFormatter *outputFormatter= [[NSDateFormatteralloc] init];

    [outputFormatter setLocale:[NSLocalecurrentLocale]];

    [outputFormatter setDateFormat:@"yyyy-MM-dd"];

    //获取时间字符串

    NSString *str= [outputFormatterstringFromDate:inputDate];

    return str;

//str = 2015-09-30

}