我正在编写一个应用程序,需要显示日期和相应的时间符号,如“小时”,“分钟”等。 在NSDateFormatter中有几个月和工作日名称的很酷的本地化常量,如monthSymbols(1月,2月等)。但是,我找不到像“小时”,“分钟”这样的符号这样的符号。这些常量是否存在,或者我应该自己创建和本地化这些符号?
UPD: 我的目标是在“30”下标签的文本 - 只有本地化的“MIN”字符串,没有任何数字,我应该将日期格式化程序中的文本放在底部的标签中。
答案 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)