【发布时间】:2017-01-06 23:24:13
【问题描述】:
我想将时间UTC 转换为“5 秒前”。以前的标签也在考虑手机上的 12h / 24h 变化。因为会崩溃。现在下面的代码行返回标签值我想要在 Playground 中。但不在我的 ios 项目中。它不会进入 If 块。我错过了什么或有什么问题?
let dateStringUTC = "2016-10-22 12:37:48 +0000"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
if let from = dateFormatter.date(from: dateStringUTC) {
dateFormatter.dateFormat = "MMM d, yyyy h:mm:ss a"
let stringFromDate = dateFormatter.string(from: from)
let dateLast = dateFormatter.date(from: stringFromDate)
let now = Date()
let components: NSCalendar.Unit = [.second, .minute, .hour, .day, .weekOfMonth]
let difference = (Calendar.current as NSCalendar).components(components, from: dateLast!, to: now, options: [])
if difference.second! <= 0 {
self.timeInfoLbl.text = "now"
}
if difference.second! > 0 && difference.minute! == 0 {
self.timeInfoLbl.text = String(describing: difference.second!) + "s."
}
if difference.minute! > 0 && difference.hour! == 0 {
self.timeInfoLbl.text = String(describing: difference.minute!) + "m."
}
if difference.hour! > 0 && difference.day! == 0 {
self.timeInfoLbl.text = String(describing: difference.hour!) + "h."
}
if difference.day! > 0 && difference.weekOfMonth! == 0 {
self.timeInfoLbl.text = String(describing: difference.day!) + "d."
}
if difference.weekOfMonth! > 0 {
self.timeInfoLbl.text = String(describing: difference.weekOfMonth!) + "w."
if difference.weekOfMonth! > 52 {
let number = Float(difference.weekOfMonth!) / 52
let strYear = String(format:"%.1f", number)
self.timeInfoLbl.text = strYear + " year"
}
}
}
【问题讨论】:
标签: ios swift swift3 nsdateformatter date-formatting