【问题标题】:Convert Firebase Firestore Timestamp to Date (Swift)?将 Firebase Firestore 时间戳转换为日期(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"
    }
}

【问题讨论】:

标签: swift firebase google-cloud-firestore


【解决方案1】:

要么做:

let date = postTimestamp.dateValue()

或者你可以这样做:

let date = Date(timeIntervalSince1970: postTimestamp.seconds)

请参阅Timestamp reference documentation

【讨论】:

  • 谢谢你,这是一个很好的方法
猜你喜欢
  • 2019-05-10
  • 2020-02-23
  • 2019-10-09
  • 1970-01-01
  • 1970-01-01
  • 2020-02-28
  • 2020-11-17
  • 2020-08-10
相关资源
最近更新 更多