将 Firebase Firestore 时间戳转换为日期(Swift)?
Posted
技术标签:
【中文标题】将 Firebase Firestore 时间戳转换为日期(Swift)?【英文标题】:Convert Firebase Firestore Timestamp to Date (Swift)? 【发布时间】:2018-12-09 12:19:11 【问题描述】:我在 Firestore 字段中保存了一个日期作为时间戳,我想在 Swift 中将其转换为日期:
June 19,2018 at 7:20:21 PM UTC-4
我尝试了以下方法,但出现错误:
let date = Date(timeIntervalSince1970: postTimestamp as! TimeInterval)
错误:
Could not cast value of type 'FIRTimestamp' (0x104fa8b98) to 'NSNumber'
我想转换为 Date 的原因是我可以使用这个 Date 扩展来模仿你在 Instagram 帖子上看到的时间戳:
extension Date
func timeAgoDisplay() -> String
let secondsAgo = Int(Date().timeIntervalSince(self))
let minute = 60
let hour = 60 * minute
let day = 24 * hour
let week = 7 * day
if secondsAgo < minute
return "\(secondsAgo) seconds ago"
else if secondsAgo < hour
return "\(secondsAgo / minute) minutes ago"
else if secondsAgo < day
return "\(secondsAgo / hour) hours ago"
else if secondsAgo < week
return "\(secondsAgo / day) days ago"
return "\(secondsAgo / week) weeks ago"
【问题讨论】:
日期是一个时间戳,而不是一个间隔。见***.com/a/50890744 仅供参考,官方 Firebase pod,FirebaseFirestoreSwift 现在允许将 Date 编码/解码转换为 FIRTimestamp,反之亦然 请查看答案:***.com/a/56662889/2781088 【参考方案1】:要么做:
let date = postTimestamp.dateValue()
或者你可以这样做:
let date = Date(timeIntervalSince1970: postTimestamp.seconds)
请参阅Timestamp reference documentation。
【讨论】:
谢谢你,这是一个很好的方法以上是关于将 Firebase Firestore 时间戳转换为日期(Swift)?的主要内容,如果未能解决你的问题,请参考以下文章
将大型 json 文件从 Firebase 存储传输到 Firestore
如何将firebase存储下载URL保存到firestore集合?
将数据类的对象添加到 Kotlin 的 Firestore 时如何添加 Firebase 时间戳?