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

Fyo*_*yok 3 nsdateformatter ios

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

UPD:我的目标是"30"下的标签文本 - 只有本地化的"MIN"字符串,没有任何数字,我应该将日期格式化程序中的文本放在底部的标签中. 在此输入图像描述

Tom*_*ton 8

根据您需要的细节,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)
Run Code Online (Sandbox Code Playgroud)

在这一点上,dateString将是"15小时11分钟".


小智 6

如果您只需要本地化的最小字符串,您可以使用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)
Run Code Online (Sandbox Code Playgroud)