Estoy tratando de crear una fecha en la era BC, pero fracasando bastante duro. Las siguientes declaraciones de ‘4713’ como el año, en lugar de ‘-4712’:Cómo crear una fecha específica en el pasado distante, la era de Columbia Británica
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [NSDateComponents new];
[components setYear: -4712];
NSDate *date = [calendar dateFromComponents:components];
NSLog(@"%d", [[calendar components:NSYearCalendarUnit fromDate: date] year]);
Alguna idea de lo que estoy haciendo mal?
ACTUALIZACIÓN: Código de Trabajo
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [NSDateComponents new];
[components setYear: -4712];
NSDate *date = [calendar dateFromComponents:components];
NSDateComponents *newComponents = [calendar components:NSEraCalendarUnit|NSYearCalendarUnit fromDate:date];
NSLog(@"Era: %d, year %d", [newComponents era], [newComponents year]);
Esto imprime 0 para la época, tal como explicó Ben.
Sabía que me faltaba una pieza del rompecabezas :) ¡Muchas gracias! (Se agregó una versión actualizada del código) – alloy