iOS/Date(1473255005000)/日期转换

在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;
//}

根据个人情况可以选择不同方法。

原文地址:https://www.cnblogs.com/yeschenbaby/p/5864320.html