ios - NSCalendarUnitEra多长时间?

标签 ios objective-c nscalendar

我似乎无法在文档或在线中的任何地方找出NSCalendarUnitEra多长时间。我假设超过一年,还是可以指定长度?有人可以帮忙吗?

最佳答案

日历时代的长短取决于引用日历的日历的定义方式。

例如,公历使用公元前和公元作为两个时代。因此,如果您认为时间是无限的,那么您可以想象,在BCE时代倒数或在AD时代倒数都可以存在任何年份。因此,每个时代都可以看作是一个时间轴,该时间轴的一端是终点,另一方向是无限延伸(本质上)。

尽管许多日历使用BCE / AD时代系统,但有些日历只有一个时代(例如希伯来语和伊斯兰教)。显然,如果只有一个时代,那么这个时代就永远存在。 (相当长)

日语日历是框架中最特殊的日历。时代与皇帝的生活息息相关。 NSCalendar框架为日语日历列出了236个时代。例如,这些时代中的许多时代都非常短,“安娜(968-970)”。

苹果在日期处理方面有两个非常不错的WWDC对话:

  • WWDC 2010- session 117-执行日历计算(23m-讨论了日本日历时代)
  • WWDC 2013-第227节-常见日期和时间挑战的解决方案

  • 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/

    相关文章:

    ios - Swift 2.2 #selector 用于代理/协议(protocol)编译错误

    ios - 如何通过代码查找某个特定的应用程序是否已经存在于iOS中

    ios - 覆盖滚动指示器的 UICollectionView 单元格

    ios - 来自周数的 NSDate

    ios - dateFromComponents 默认为 8 :00 AM

    swift - 为什么在 Swift Playground 中执行的结果与在应用程序中执行的结果不同?

    iOS:将 CIFilter 应用于 UIImage 时,结果图像会旋转

    ios - 如何从游戏场景中调用一个 Action

    ios - iOS 应用程序提交的分发验证失败

    objective-c - 为什么GCDAsyncSocket readData设计成只读一次?