我似乎无法在文档或在线中的任何地方找出NSCalendarUnitEra多长时间。我假设超过一年,还是可以指定长度?有人可以帮忙吗?
最佳答案
日历时代的长短取决于引用日历的日历的定义方式。
例如,公历使用公元前和公元作为两个时代。因此,如果您认为时间是无限的,那么您可以想象,在BCE时代倒数或在AD时代倒数都可以存在任何年份。因此,每个时代都可以看作是一个时间轴,该时间轴的一端是终点,另一方向是无限延伸(本质上)。
尽管许多日历使用BCE / AD时代系统,但有些日历只有一个时代(例如希伯来语和伊斯兰教)。显然,如果只有一个时代,那么这个时代就永远存在。 (相当长)
日语日历是框架中最特殊的日历。时代与皇帝的生活息息相关。 NSCalendar
框架为日语日历列出了236个时代。例如,这些时代中的许多时代都非常短,“安娜(968-970)”。
苹果在日期处理方面有两个非常不错的WWDC对话:
NSCalendarUnitEra多长时间?
这取决于日历。
我假设超过一年
一个相当安全的假设-除了一个非常不幸的皇帝。
要查看所有日历中使用的所有时代,只需枚举日历并访问
longEraSymbols
数组。注意:
NSLog()
控制台无法正确显示日语字符-但它会使代码保持简单。NSArray *calendarIdentifiers =
@[NSCalendarIdentifierGregorian,
NSCalendarIdentifierBuddhist,
NSCalendarIdentifierChinese,
NSCalendarIdentifierCoptic,
NSCalendarIdentifierEthiopicAmeteMihret,
NSCalendarIdentifierEthiopicAmeteAlem,
NSCalendarIdentifierHebrew,
NSCalendarIdentifierISO8601,
NSCalendarIdentifierIndian,
NSCalendarIdentifierIslamic,
NSCalendarIdentifierIslamicCivil,
NSCalendarIdentifierJapanese,
NSCalendarIdentifierPersian,
NSCalendarIdentifierRepublicOfChina];
for (NSString *calendarIdentifier in calendarIdentifiers) {
NSCalendar *cal = [NSCalendar calendarWithIdentifier:calendarIdentifier];
NSLog(@"Name:%@ NumberOfEras:%li Eras:%@",calendarIdentifier,cal.longEraSymbols.count,cal.longEraSymbols);
}
关于ios - NSCalendarUnitEra多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20942880/