在json序列化时,Date类型数据可能会序列化成“@"YYYY-MM-dd HH:mm:ss"
”这类的一个字符串。
有时候需要客户端方面自己转化日期格式,一起来看看吧。
一、含义
/Date(1473255005000)/,字符串括号中的一长串数字,其实就是从1970到这个Date日期的毫秒数(具体开始时间问服务器^-^,有时间并不是从1970开始的)
然后就不用多说了吧,截取字符串呀!!!由于都是“/Date(”开头的所以用NSRang很容易截取。
二、转化日期
获取到一长串数字以后,确定出我们需要的NSDateFormat的事件类型:例:“@"YYYY-MM-dd HH:mm:ss",给方法
参数:messageDate就是NSTimeInterval格式的一个时间间隔。
参数:dateFormat就是需要的“@"YYYY-MM-dd HH:mm:ss"字符串
#pragma mark - 时间转换 - (NSString *)dateWithString:(NSTimeInterval)messageDate dateFormat:(NSString *)dateFormat { if (messageDate == 0) { return nil; } if (!dateFormat) { dateFormat = @"YYYY-MM-dd HH:mm:ss"; } // NSLog(@"%f",[[NSDate date] timeIntervalSince1970]); NSDate *date = [NSDate dateWithTimeIntervalSince1970:messageDate/1000]; //创建NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //设置NSDateFormatter格式类型 @"YYYY-MM-dd HH:mm:ss" [dateFormatter setDateFormat:dateFormat]; NSString *dateStr = nil; dateStr = [dateFormatter stringFromDate:date]; return dateStr; }
返回值就是我们需要日期格式的字符串了。
三、其他类似转换方法
当然,还有很多类似转换方法:
//-(NSString*)shijian:(NSTimeInterval)secs{ // NSDate *date=[NSDate dateWithTimeIntervalSince1970:secs]; // NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; // [dateFormatter setDateFormat:@"YYYY/MM/dd HH:mm:ss"]; // NSString *timeStr = [dateFormatter stringFromDate:date]; // return timeStr; //} //// 把时间戳转换成日期字符串 //CG_INLINE NSString* //dateTimeString(NSInteger nTimestamp) //{ // NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; // [formatter setDateStyle:NSDateFormatterMediumStyle]; // [formatter setTimeStyle:NSDateFormatterShortStyle]; // [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; // NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:nTimestamp]; // NSString *confromTimespStr = [formatter stringFromDate:confromTimesp]; // // return confromTimespStr; //}
根据个人情况可以选择不同方法。