double seconds = -62167464057.000;
NSDate *oldDate = [NSDate dateWithTimeIntervalSince1970:seconds];
MELog("oldDate = %@", oldDate);//oldDate = 0002-12-29 03:59:03 +0000
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
NSString *formattedDateString = [dateFormatter stringFromDate:oldDate];
NSLog(@"formattedDateString = %@", formattedDateString);//formattedDateString = 3:57 AM
在上面的代码中,日期组件的时间为3:59,但是当我们格式化它以提取时间字段时,我们得到的是3:57
我的时区是伦敦,所以应该返回3:59
这是因为我们正在尝试格式化1970年之前的日期吗?请确认是否有人知道。
最佳答案
是的,这就是原因。这是因为时间戳的“开始”:
Unix time, the number of seconds since 00:00:00 UTC on January 1, 1970
更多on wikipedia。