0

我有"634758517020305000"对应于 2012 年 6 月 21 日的刻度值。我尝试将刻度值转换为 NSDate 对象,如下所示:

NSString *str = @"634758517020305000";
NSInteger offset = [[NSTimeZone defaultTimeZone] secondsFromGMT];
NSDate *date = [[NSDate dateWithTimeIntervalSince1970:
                 [[str substringWithRange:NSMakeRange(0, [str length])] intValue]]
                dateByAddingTimeInterval:offset];
static NSDateFormatter *dateFormatter = nil;
if (dateFormatter == nil) {
    dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle:NSDateFormatterShortStyle];
    [dateFormatter setTimeStyle:NSDateFormatterNoStyle];
    NSString *fourDigitYearFormat = [[dateFormatter dateFormat] stringByReplacingOccurrencesOfString:@"yy" withString:@"yyyy"];
    [dateFormatter setDateFormat:fourDigitYearFormat];
}

// There you have it:
NSString *outputString = [dateFormatter stringFromDate:date];

但我得到了输出:1/19/2038. 如果有人知道我在哪里做错了,请告诉我。

4

1 回答 1

0

Unix timestamps错了。它应该是1340236800
检查你的 Unix 时间戳在这里

于 2012-06-22T06:02:13.650 回答