如何在iOS中生成类似通知的时间字符串?

时间:2016-04-15 19:15:03

标签: ios time internationalization nsdateformatter nsdatecomponents

iOS上的通知显示他们多久才到达:

  • “现在”
  • “5m ago”
  • “1d ago”

是否有本地方法在i18n中生成这些字符串    友好的方式? (注意:“m”不是“分钟”

我了解像YLMoment这样的库,但似乎没有人支持这些语法。

1 个答案:

答案 0 :(得分:2)

您应该考虑使用NSDateComponentsFormatter。例如:

let formatter = NSDateComponentsFormatter()
formatter.unitsStyle = .Abbreviated
formatter.includesApproximationPhrase = true
formatter.allowedUnits = [.Minute]
formatter.maximumUnitCount = 1

let oldDate = NSDate(timeIntervalSinceNow: -60*60)

print(formatter.stringFromDate(oldDate, toDate: NSDate()))

将打印"大约60米"它没有提供"前"虽然不确定那是不是你真正想要的。