如何格式化“5 分钟”、“1 小时”、“昨天”、“1 周前”等日期?

Iam*_*yne 0 nsdate xcode6 swift3

我正在尝试获得类似于 facebook 发布日期/时间的内容。像 1 分钟、1 小时、昨天、一周前等。

这是我用来获取这种格式的函数:( Oct-22 17:28 PM)

func convertTime(serverTime: Double)  -> String {
    let serverTime = serverTime
    let date = Date(timeIntervalSince1970: serverTime)
    let dateFomatter = DateFormatter()
    dateFomatter.dateFormat = "MMM-dd HH:mm a"
    let strDate = dateFomatter.string(from: date)
    print("This is the post's date: \(strDate)")

    return strDate
}
Run Code Online (Sandbox Code Playgroud)

BHA*_*HAL 5

试试这个代码

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.locale = Locale.init(identifier: "en_GB")
let before = dateFormatter.date(from: "2017-10-23 10:28:17")!

//getting the current time
let now = Date()

let formatter = DateComponentsFormatter()
formatter.unitsStyle = .full
formatter.zeroFormattingBehavior = .dropAll
formatter.maximumUnitCount = 1 
formatter.allowedUnits = [.year, .month, .weekOfMonth, .day, .hour, .minute]
formatter.includesApproximationPhrase = true 


let formatString = NSLocalizedString("%@ ago", comment: "e.g. '2 hours ago'")

let timeString = formatter.string(from: before, to: now)
Run Code Online (Sandbox Code Playgroud)