【问题标题】:How to correctly format a NSTimeInterval as a time period, respecting i18n?如何正确地将 NSTimeInterval 格式化为时间段,尊重 i18n?
【发布时间】:2014-10-07 10:58:50
【问题描述】:

给定一个代表一段时间的 NSTimeInterval,我如何创建一个人类可读的字符串,以尊重 i18N 的方式表达该时间段?

例如,如果 NSTimeInterval 等于 10823.23435 秒,那么在美国将其呈现为字符串的一些合理方法可能是:

  • 3:23
  • 3 小时 23 秒

(即,你会在秒表上看到的东西。)

据推测,其他语言环境可能会使用不同的渲染。

我知道 NSDateFormatter 和 NSNumberFormatter,但我不清楚是否或如何使用其中之一来解决这个问题。

我也知道 FormatterKit,但这只适用于相对时间段(例如,“3 分钟前”)。我正在寻找绝对时间段。

编写我自己的特定于语言环境的解决方案是微不足道的,但是这个问题已经得到妥善解决了吗?

谢谢。

【问题讨论】:

  • 谢谢@David,但该解决方案使用的格式假定时间段的特定格式,而不是为用户的语言环境生成字符串。如果没有其他合适的,我可能会依靠它......
  • @Zaph:我没有看到这些课程。链接?
  • @Chris 尚未记录。我们可以在NSFormatter reference“继承”部分看到他们的名字。截至目前,只需在编辑器中输入并“跳转到定义”

标签: ios objective-c swift cocoa nstimeinterval


【解决方案1】:

对于 iOS 8,有 NSDateComponentsFormatter 和 NSDateIntervalFormatter,它们可能适用于您的应用程序。

缺少文档请参阅 NSHipster:NSFormatter

基金会/NSDateIntervalFormatter.h

【讨论】:

  • 谢谢@Zaph,这正是我想要的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-10
  • 1970-01-01
  • 1970-01-01
  • 2019-05-15
  • 1970-01-01
  • 1970-01-01
  • 2015-08-25
相关资源
最近更新 更多