Convert Firebase Firestore Timestamp to Date (Swift)?
18,752
Either do:
let date = postTimestamp.dateValue()
or you could do:
let date = Date(timeIntervalSince1970: postTimestamp.seconds)
See the Timestamp reference documentation.
Author by
winston
Updated on June 11, 2022Comments
-
winston about 2 years
I have a date saved in a Firestore field as a timestamp that I want to convert to a Date in Swift:
June 19,2018 at 7:20:21 PM UTC-4
I tried the following but I get an error:
let date = Date(timeIntervalSince1970: postTimestamp as! TimeInterval)
Error:
Could not cast value of type 'FIRTimestamp' (0x104fa8b98) to 'NSNumber'
The reason why I want to convert to Date is so that I can use this Date extension to mimic timestamps you see on Instagram posts:
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" } }