Sto provando a creare una data nell'era BC, ma non riuscendo abbastanza. Il seguente ritorna '4713' come l'anno, invece di '-4712':Come creare una data specifica nel lontano passato, l'era BC
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]);
Qualche idea di cosa sto facendo male?
UPDATE: il codice di lavoro
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]);
Viene stampata 0 per l'epoca, proprio come ha spiegato Ben.
Sapevo che mi mancava un pezzo del puzzle :) Grazie mille! (Aggiunta versione aggiornata del codice) – alloy