获取本地化的相对日期Swift

时间:2018-07-17 18:01:52

标签: ios swift

当前,我使用Date(timeIntervalSince1970: dateDouble).relativeTime来获取相对时间。并获取类似“ 2小时前”的字符串。有没有办法获取本地化的字符串?

2 个答案:

答案 0 :(得分:2)

let timeInterval = 0
let date = Date(timeIntervalSinceNow: timeInterval)
let dateFormatter = DateFormatter()
dateFormatter.timeStyle = .none
dateFormatter.dateStyle = .medium
dateFormatter.locale = Locale.current
dateFormatter.doesRelativeDateFormatting = true
print(dateFormatter.string(from: date)) // Today

// modifying locale

dateFormatter.locale = Locale(identifier: "fr_FR")
print(dateFormatter.string(from: date)) // aujourd’hui

签出https://developer.apple.com/documentation/foundation/dateformatter/1415848-doesrelativedateformatting

答案 1 :(得分:0)

好吧,GitHub上有一个名为NSDate-TimeAgo的库,或者它的较新版本迁移到DateTools中,这要感谢@Koen评论,它将使您的工作变得更轻松,它支持许多语言及其实现方式都非常简单,您只需要输入日期即可:

NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:0];
NSString *ago = [date timeAgo];

它将日期格式化为例如:

  

片刻前”,“ 30秒前”,“ 5分钟前”,“昨天”,“最后   月”,“ 2年前”

诀窍是使用NSTimer / Timer不时地重新加载视图以重新计算时间。

祝你好运。