【问题标题】:Correlating NSCalendar symbols with numeric constants将 NSCalendar 符号与数字常量相关联
【发布时间】:2016-03-20 19:48:47
【问题描述】:

NSCalendar 具有日历符号的属性,例如 monthera 等:

var monthSymbols: [String] { get }
var eraSymbols: [String] { get }
…

NSDateComponents 中将它们映射到我需要的数字常量的正确方法是什么?

【问题讨论】:

    标签: swift cocoa nscalendar nsdatecomponents


    【解决方案1】:

    我真的希望实际上有更好的方法,因为这看起来很罗嗦,但本质上这只是在 NSCalendar 中访问monthSymbols

    let monthNumeric = 1 // 一月 让monthName =“一月” 打印(NSCalendar.currentCalendar().monthSymbols[monthNumeric-1]) 打印(NSCalendar.currentCalendar().monthSymbols.indexOf(monthName)!+ 1)

    同样适用于eraSymbols 请注意,Swift 基金会 正在不断发展,来源为 public。由于 API 应该在很大程度上与 Darwin Foundation 相匹配,因此它是一个很好的了解幕后资源的资源。

    【讨论】:

    • 同样的适用于时代符号。纪元的数字常量,与月份不同,从零开始,至少在 NSCalendarIdentifierISO8601 日历中,大概对于 NSCalendarIdentifierGregorian 也是如此。
    • 对不起,我的评论是基于这样一个事实,即 eraSymbolsmonthSymbols 本质上只是 Array i>字符串。当然,内容会有所不同。
    • 它们是我在问题中已经说过的字符串数组,并且内容不同是可以预料的。您似乎暗示数组中字符串常量的索引与数字常量之间存在直接关系。但是这种关系在符号之间并不相同。有时我必须添加1,有时我不需要。我正在寻找一种适用于 all 日历中的 all 符号的解决方案,并且我不想编写详尽的映射函数。日期和时间 API 应该可以让我省去这样的工作量。
    猜你喜欢
    • 2016-07-08
    • 2018-05-29
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    相关资源
    最近更新 更多