同样的时间,一个模块服务端传过来的是时间戳,另一个模块服务端又传的是代表时间的nsinteger格式,然后按照既定时间格式显示出来!真特么想不通服务端干嘛同一个东西,非要客户端用两种解析方式,新公司的服务端真的好难沟通,脾气还差,每次跟他说,他就说了几句他的想法后自己盯着屏幕敲代码,你怎么说都当听不到不理你,可怜我们前端的这些好孩纸啊
分别写两个解析函数,调用就可以了!
1.首先传递的是时间戳的话
-(NSString*)returnDate:(NSInteger)timeStr{
//NSTimeInterval = 1443542400( 服务端的数据)
NSTimeIntervaltime=timeStr+28800;//因为时差问题要加8小时== 28800 sec//这里也可以设置时区来解决
NSDate*detaildate=[NSDatedateWithTimeIntervalSince1970:time];
NSDateFormatter*dateFormatter = [[NSDateFormatteralloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString*currentDateStr = [dateFormatterstringFromDate: detaildate];
returncurrentDateStr;
//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];
[inputFormattersetDateFormat:@"yyyyMMdd"];
NSDate*inputDate = [inputFormatterdateFromString:string];
//将NSDate转化成既定格式的时间格式
NSDateFormatter*outputFormatter= [[NSDateFormatteralloc]init];
[outputFormattersetLocale:[NSLocalecurrentLocale]];
[outputFormattersetDateFormat:@"yyyy-MM-dd"];
//获取时间字符串
NSString*str= [outputFormatterstringFromDate:inputDate];
returnstr;
//str = 2015-09-30
}