用于时间符号的iOS本地化字符串常量(“MINUTE(S)”,“HOUR(S)”等)

时间:2015-08-25 21:37:45

标签: ios nsdateformatter

我正在编写一个应用程序,需要显示日期和相应的时间符号,如“小时”,“分钟”等。 在NSDateFormatter中有几个月和工作日名称的很酷的本地化常量,如monthSymbols(1月,2月等)。但是,我找不到像“小时”,“分钟”这样的符号这样的符号。这些常量是否存在,或者我应该自己创建和本地化这些符号?

UPD: 我的目标是在“30”下标签的文本 - 只有本地化的“MIN”字符串,没有任何数字,我应该将日期格式化程序中的文本放在底部的标签中。 enter image description here

2 个答案:

答案 0 :(得分:7)

根据您所需的详细信息,NSDateComponentsFormatter可能是解决方案。它包括NSDateComponentsFormatterUnitsStyleSpellOut,它以“一小时十分钟”等格式呈现字符串。

更新:阅读评论后,我仍然不确定你真正需要什么样的格式。但希望这将是一个有用的例子:

let formatter = NSDateComponentsFormatter()
formatter.unitsStyle = NSDateComponentsFormatterUnitsStyle.Full
formatter.allowedUnits = [ NSCalendarUnit.Minute, NSCalendarUnit.Hour ]

let date = NSDate()

let dateComponents = NSCalendar.currentCalendar().components([.Minute, .Hour], fromDate: date)
let dateString = formatter.stringFromDateComponents(dateComponents)

此时,dateString将是“15小时11分钟”。

答案 1 :(得分:0)

如果只需要本地化 min 字符串,则可以使用MeasurementFormatter()

let measurementFormatter: MeasurementFormatter = {
    let measurementFormatter = MeasurementFormatter()
    measurementFormatter.locale = Locale.current
    measurementFormatter.unitOptions = .providedUnit
    measurementFormatter.unitStyle = .short        
    return measurementFormatter
}()

label.text = measurementFormatter.string(from: UnitDuration.minutes)