作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图创建一个公元前时代的日期,但失败得很厉害。以下命令返回“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/
我现在正在开发一个项目,需要在日期选择器上具有很大的灵 active 。用户可以插入几千年前的日期,以及一直到今天的日期。典型的日期选择器非常适合选择相距几年之内的日期,但在选择差异巨大的日期时效果不
我是一名优秀的程序员,十分优秀!