【问题标题】:iOS localized string constants for time symbols ("MINUTE(S)", "HOUR(S)" etc.)iOS 本地化的时间符号字符串常量(“MINUTE(S)”、“HOUR(S)”等)
【发布时间】:2015-08-25 21:37:45
【问题描述】:

我正在编写一个应用程序,它需要显示带有相应时间符号的日期,例如“小时”、“分钟”等。 NSDateFormatter 中有一些很酷的本地化常量用于月份和工作日名称,例如monthSymbols(一月、二月等)。但是,对于“小时”、“分钟”等符号本身,我找不到类似的东西。是否存在此类常量,或者我应该自己创建和本地化这些符号?

更新: 我的目标是“30”下的标签文本 - 只有本地化的“MIN”字符串没有任何数字,在将日期格式化程序中的文本放置在底部的标签中之前,我应该摆脱任何数字。

【问题讨论】:

    标签: ios nsdateformatter


    【解决方案1】:

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

    更新:阅读 cmets 后,我仍然不确定您真正需要哪种格式。但希望这将是一个有用的例子:

    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 分钟”。

    【讨论】:

    • 是的,它可能会有所帮助,但是我只需要“小时”或“分钟”,而您的解决方案让我需要分隔值和符号,不是吗?
    • 也许吧。您能否更详细地描述一下您要在这里做什么?
    • 我的目标是一个带有分钟(数字)的标签和另一个下面带有时间符号的小标签。
    【解决方案2】:

    如果您只需要本地化 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)
    

    【讨论】:

      猜你喜欢
      • 2021-11-27
      • 2020-09-07
      • 1970-01-01
      • 1970-01-01
      • 2017-05-28
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多