ios - 如何以“2小时之前”的格式格式化日期和时间?

标签 ios swift

我想将日期和时间的格式设置为“5小时之前”,就像“日历”应用程序一样。而且我还希望将格式化的字符串本地化为多种语言。

iOS 13中引入了一个名为RelativeDateTimeFormatter的新API。但是,此API只能生成本地化的字符串,例如“2小时前”和“2小时内”。这不适合我的目的。
我想知道是否有提供所需功能的API。

最佳答案

如果可以本地化之前的部分,则可以考虑使用DateComponentsFormatter
(也许这更适合作为注释,但似乎太长了)
例如:

let componentsList = [
    DateComponents(minute:5),
    DateComponents(minute:10),
    DateComponents(minute:15),
    DateComponents(minute:30),
    DateComponents(hour:1),
    DateComponents(hour:2),
    DateComponents(day:1),
    DateComponents(day:2),
    DateComponents(weekOfMonth:1)
]

for components in componentsList {
    if let text = DateComponentsFormatter.localizedString(from: components, unitsStyle: .full) {
        print("\(text) before")
    }
}

关于ios - 如何以“2小时之前”的格式格式化日期和时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64022675/

相关文章:

iOS CustomTableViewCell : elements not aligining correctly

ios - 更改表格 View 行文本和图像颜色

ios - SpriteKit 场景转换 XCode 7

ios - 标签类型的导出数组

ios - 使用 XMPPFramework 的 MUC Light

ios - 通过点击外部关闭 UIAlertViewController

javascript - Phonegap Hybrid App - JavaScript Redirect 使绝对定位元素闪烁并显示后面的内容

ios - 访问和下载按需资源 iOS9

ios - 断言失败 : (Transform_is_valid(m))

swift - 不使用 nil 合并运算符重新赋值的简写 (??)