Epoch Unix Time Missing当年是1970年之前的几个小时

时间:2014-10-14 09:11:02

标签: ios iphone ios7 epoch

我有一个Web服务,它返回人的出生日期。我遇到的问题是,当出生年份大约在1899年时,时间会减少几个小时。然而,它到1970年越接近它就越准确。出生年份是在1970年之后没有问题。

通过日期 - 1899-12-31 16:00:00 +0000

返回日期 - 1899-12-31 22:55:25 +0000(加上时间差+0800)

1970年以后

很好]

通过日期 - 1990-08-24 16:00:00 +0000

返回日期 - 1990-08-25 00:00:00 +0000

我正在使用目标c

jsonDateString是传递字符串

 double dateNumber = [[jsonDateString substringWithRange:NSMakeRange(startPosition, 1)] isEqualToString:@"-"] ? - [[jsonDateString substringWithRange:NSMakeRange(startPosition + 1, 13)] doubleValue] :  [[jsonDateString substringWithRange:NSMakeRange(startPosition, 13)] doubleValue];

        NSTimeInterval unixTime = dateNumber / 1000; //WCF will send 13 digit-long value for the time interval since 1970 (millisecond precision) whereas iOS works with 10 digit-long values (second precision), hence the divide by 1000
    //    time changes***** - by ashan
        NSDate *gmtDate  = [[NSDate dateWithTimeIntervalSince1970:unixTime]dateByAddingTimeInterval:0];
        NSTimeInterval timeZoneOffset = [[NSTimeZone systemTimeZone] secondsFromGMTForDate:gmtDate];
        NSDate *localDate = [gmtDate dateByAddingTimeInterval:timeZoneOffset];

JsonString - / Date(-2209017600000 + 0800)/

divideby1000:-2209017600.000000

通过日期 - 1899-12-31 16:00:00 +0000

返回日期 - 1899-12-31 22:55:25 +0000

enter image description here

正如你所看到的那样,你甚至可以转换时间标记,它表示1600和+8将是0000.它如何显示1100h。是1970年之前的纪元unix时序还是服务器端的db问题。

0 个答案:

没有答案