我一直在寻找一段时间,并没有找到一个很好的答案。我目前有一个用户发布照片时,它需要一个nsdate(timeIntervalSince1970)并在上传到firebase时将其作为值。一个问题,我将nsdate更改为timeStamp或发布后的分钟/小时/天的当前方式不是Turing out to good,它不正确,当一天过去时,它只显示它发布的时间。我希望我能得到一个答案,或者提到一个算法,它可以将nsdate(timeIntervalSince1970)更改为timeStamp或字符串,它只是给我发布了多少小时,而且每24小时一次,将其更改为1天(s )。我提前道歉,问一些简单的问题,我猜。这是我目前的代码:
if let seconds = posts[visibli.row].timeStamp {
let time = NSDate(timeIntervalSince1970: TimeInterval(seconds))
let formatter = DateFormatter()
formatter.dateFormat = "hh:mm a"
labelTime.text = formatter.string(from: time as Date)
}
感谢您的帮助!
答案 0 :(得分:1)
您要找的是DateComponentsFormatter
。您可以查看不同的格式化工具Foundation
商品,here.
如果你想要一个表示自给定日期以来经过的时间量的字符串,你可以这样说:
if let seconds = posts[visibli.row].timeStamp {
let time = Date(timeIntervalSince1970: TimeInterval(seconds))
let dateComponentsFormater = DateComponentsFormatter()
dateComponentsFormater.unitsStyle = .positional
let string = dateComponentsFormater.string(from: time, to: Date())
labelTime.text = string
}
答案 1 :(得分:0)
当前时间戳为字符串。
public class func getCurrentTimeStamp()->String{
return String(describing: NSNumber(value: round(NSDate().timeIntervalSince1970 * 1000)))
}
此函数使用get current timestamp。