小编use*_*625的帖子

如何将日期格式化为字符串就像IOS中的"One Days Ago","Minutes Ago"?

我在这里创建一个包含JSON解析数据的应用程序是我的JSON解析数据,其中包含类似"2014-12-02 08:00:42"的日期,然后我将此日期转换为以下格式"2014年2月12日",如同

NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSString *date=[dict valueForKey:@"post_date"];
NSDate * dateNotFormatted = [dateFormatter dateFromString:date];
[dateFormatter setDateFormat:@"d MMM YYYY"];
NSString * dateFormatted = [dateFormatter stringFromDate:dateNotFormatted];
cell.timeLabel.text=[dateFormatted uppercaseString];
Run Code Online (Sandbox Code Playgroud)

它工作正常,但现在我想将这个dateFormatted字符串转换为"One Day Ago","Minutes Ago".我知道这个问题之前已被问过很多次了.

iphone json nsdateformatter ios

16
推荐指数
7
解决办法
1万
查看次数

强制在DateComponentsFormatter中定位allowedUnits

我有一个只有一种语言的应用程序.我希望在显示自日期以来的时间间隔时强制语言为此.例如"9个月前"只是用特定的语言而不是英语.有没有办法使用DateComponentsFormatter执行此操作,否则我将完成我想要的单位.

    func format(duration: TimeInterval) -> String {
        UserDefaults.standard.set(["da"], forKey: "AppleLanguages")
        UserDefaults.standard.synchronize()
        let formatter = DateComponentsFormatter()
        formatter.allowedUnits = [.year, .month, .day, .hour, .minute, .second]
        formatter.unitsStyle = .short
        formatter.includesApproximationPhrase = true
        formatter.maximumUnitCount = 1

        return formatter.string(from: -duration)!
    }

    format(duration: self.createdDate.timeIntervalSinceNow)
Run Code Online (Sandbox Code Playgroud)

当语言为en时,这将返回例如"1年".我想用一种特定的语言("yr" - >"år"),这应该与其他允许的单位类似.

当手机设置为应用程序的语言时,它可以工作.

我尝试在创建DateComponentsFormatter之前设置语言,但它仍然以手机设置的语言返回.

编辑插入下面的工作代码

从答案修改后的工作代码:

    func format(duration: TimeInterval) -> String {
        var calendar = Calendar.current
        calendar.locale = Locale(identifier: "da")
        let formatter = DateComponentsFormatter()
        formatter.calendar = calendar
        formatter.allowedUnits = [.year, .month, .day, .hour, .minute, .second]
        formatter.unitsStyle = .short
        formatter.includesApproximationPhrase = true …
Run Code Online (Sandbox Code Playgroud)

date-formatting ios swift

10
推荐指数
1
解决办法
2091
查看次数

标签 统计

ios ×2

date-formatting ×1

iphone ×1

json ×1

nsdateformatter ×1

swift ×1