Tôi đang cố gắng tạo một ngày trong kỷ nguyên BC, nhưng không gặp khó khăn. Nội dung sau trả về ‘4713’ làm năm, thay vì ‘-4712’:Cách tạo một ngày cụ thể trong quá khứ xa xôi, thời đại 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]);
Bất kỳ ý tưởng nào tôi đang làm sai?
CẬP NHẬT: Mã Working
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]);
này in 0 cho thời đại, cũng giống như Ben giải thích.
Tôi biết tôi đã bỏ lỡ một phần của câu đố :) Cảm ơn rất nhiều! (Đã thêm phiên bản cập nhật của mã) – alloy