将 Datetime c# 转换为 Objective c 并反转

Convert Datetime c# to Objective c and invertion

如何将 Datetime 时间戳转换为 NSDate? 如何进行逆运算?

我将日期时间转换为字符串的方法:

+(NSString*) dateTojson:(NSDate*)date{

    return [NSString stringWithFormat:@"/Date(%f)/",(double)([date dateWithTimeIntervalSince1970] * 1000)];
}

我的逆法:

+(NSDate*) jsonToDate:(NSString *)json
{
    double milisec = 0;
    json = [[[json stringByReplacingOccurrencesOfString:@"/Date(" withString:@""] stringByReplacingOccurrencesOfString:@"/" withString:@""] stringByReplacingOccurrencesOfString:@"-0200" withString:@""];
    NSArray *arr = [json componentsSeparatedByString:@"-"];
    for(NSString *s in arr) {
        if(![s isEqualToString:@""]){
            milisec += [s doubleValue];
        }
    }

    NSDate *date = [NSDate dateWithTimeIntervalSince1970:(milisec / 1000.0)];

    return date;
}

当我使用 [self jsonToDate:@"/Date(1495497600)/"] 时,其中 1495497600 代表“05/23/2017”,方法 return 给我一个错误的日期(结果 =“01/18/1970”)。 为什么?

备注:

我不考虑时间,只考虑日期。 我的变量 milisec 等于 1495497600,所以我认为问题出在方法 dateWithTimeIntervalSince1970.

已经尝试过一些帖子,例如:

Convert milliseconds to NSDate

How to Convert a milliseconds to nsdate in objective C

你真的不需要在最后除以毫秒:

NSDate *date = [NSDate dateWithTimeIntervalSince1970:milisec];

结果:

2017-05-23 00:00:00 +0000