Ich versuche, ein Datum in der BC-Ära zu erstellen, aber ziemlich hart ausfallen. Der folgende Code gibt ‚4713‘ als das Jahr, statt ‚-4712‘:So erstellen Sie ein bestimmtes Datum in der fernen Vergangenheit, die BC-Ära
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]);
Jede Idee, was ich falsch mache?
UPDATE: Arbeits Code
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]);
Dieser druckt 0 für die Zeit, so wie Ben erklärt.
Ich wusste, dass ich ein Stück des Puzzles vermisste :) Vielen Dank! (Hinzugefügt aktualisierte Version des Codes) – alloy