同样的时间,一个模块服务端传过来的是时间戳,另一个模块服务端又传的是代表时间的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
}