NSDate Min和Max可能的值

Oli*_*ain 20 cocoa objective-c nsdate

任何人都知道NSDate的最小和最大可能值是多少?

pek*_*eko 2

最大值应为: 5828963-12-20 00:00:00 +0000 因为

NSDate *dateSinceNow = [NSDate dateWithTimeIntervalSinceNow:DBL_MAX];
NSDate *dateSindeReferenceDate = [NSDate dateWithTimeIntervalSinceReferenceDate:DBL_MAX];
NSLog(@"min: %@, max: %@", dateSinceNow, dateSindeReferenceDate);
Run Code Online (Sandbox Code Playgroud)

是一样的。

我得到的最小值是:0001-01-01 00:00:00 +0000

因为这就是我尝试时得到的结果:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
[df setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *myDate = [df dateFromString: @"0001-01-01 00:00:00"];
NSLog(@"%@", myDate);
Run Code Online (Sandbox Code Playgroud)

但这是达维德隆指出的当前时代

因此,如果您尝试使用 - DBL_MAX 的第一个示例,您将得到:41221-07--2147483641 00:00:00 +0000。不知道现在是什么时代了……

  • 这只说对了一半。最大位是正确的,但您的最小值逻辑有缺陷。这是*当前时代*(CE)的最低要求。`NSDate` 完全能够表达 BCE 日期。您要寻找的是“[NSDate dateWithTimeIntervalSince1970:-DBL_MAX]” (3认同)