Beim Schreiben einiger Komponententests an einem Julian-Day-Rechner habe ich festgestellt, dass Daten vor dem 2. Dezember 1847 von NSDate falsch initialisiert wurden. Sie scheinen 75 Sekunden hinzugefügt zu haben. Ich konnte nichts finden, was auf dieses Datum hinweist (das ist weit nach dem Gregorianischen Kalender). Ist es ein Fehler oder gibt es eine historische Kalenderanpassung, auf die ich nicht gestoßen bin?Woher kommen die zusätzlichen 75 Sekunden?
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *dateComps = [NSDateComponents new];
dateComps.year = 1847;
dateComps.month = 12;
dateComps.day = 1;
NSDate *d1 = [cal dateFromComponents:dateComps];
NSLog(@"d1 = %@", d1);
dateComps = [NSDateComponents new];
dateComps.year = 1847;
dateComps.month = 12;
dateComps.day = 2;
NSDate *d2 = [cal dateFromComponents:dateComps];
NSLog(@"d2 = %@", d2);
}
return 0;
}
Output:
d1 = 1847-12-01 00:01:15 +0000
d2 = 1847-12-02 00:00:00 +0000
Ich habe Ihren Code kopiert, ohne irgendeine Änderung und das ist meine Ausgabe: ' d1 = 1847-12-01 00:00:00 -064116 || d2 = 1847-12-02 00:00:00 -064116' – Merlevede