При написании некоторых модульных тестов в калькуляторе Julian Day я обнаружил, что даты до 2 декабря 1847 года были неправильно инициализированы NSDate. Кажется, у них 75 секунд. Я не смог найти ничего, указывающего на эту дату (что хорошо после отсечения григорианского календаря). Это ошибка или есть историческая корректировка календаря, с которой я не сталкивался?
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;
}
Вывод:
d1 = 1847-12-01 00:01:15 +0000
d2 = 1847-12-02 00:00:00 +0000