gpt4 book ai didi

cocoa - 如何创建遥远的过去(公元前时代)的特定日期

转载 作者:行者123 更新时间:2023-12-03 16:09:01 30 4
gpt4 key购买 nike

我试图创建一个公元前时代的日期,但失败得很厉害。以下命令返回“4713”作为年份,而不是“-4712”:

  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]);

知道我做错了什么吗?

更新:工作代码

    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]);

正如 Ben 所解释的那样,这会为纪元打印 0。

最佳答案

您的代码实际上运行良好。由于没有零年,-4712 就是公元前 4713 年。如果您检查纪元组件,您会发现它为零,这在公历中表示公元前。翻转那个负号,你会看到公元 4712 年(纪元 1)。

关于cocoa - 如何创建遥远的过去(公元前时代)的特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2719510/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com