如何正确格式化NSTimeInterval作为时间段,尊重i18n?

Chr*_*ris 4 cocoa objective-c nstimeinterval ios swift

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

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

  • 3:23
  • 3小时23秒
  • 等等

(即你在秒表上看到的东西.)

据推测,其他区域设置可能使用不同的渲染.

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

我也知道FormatterKit,但这只是相对时间段(例如,"3分钟前").我正在寻找绝对的时间段.

制作我自己的特定于语言环境的解决方案是微不足道的,但是这个问题已经解决了吗?

谢谢.

zap*_*aph 6

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

文档缺乏NSHipster:NSFormatter

Foundation/NSDateIntervalFormatter.h