当前位置: 首页 > 面试题库 >

将Firebase Firestore时间戳转换为日期(快速)?

蔚学林
2023-03-14
问题内容

我有一个日期保存在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"
    }
}

问题答案:

可以这样做:

let date = postTimestamp.dateValue()

或者你可以这样做:

let date = Date(timeIntervalSince1970: postTimestamp.seconds)

请参阅时间戳参考文档。



 类似资料:
  • 我试图找出如何在Kotlin中将转换为,这在Java中非常简单,但我在Kotlin中找不到任何等效的。 例如:历元时间戳(1970-01-01以来的秒数)== 在Kotlin中是否有解决方案,或者我是否必须在Kotln中使用Java语法?请给我一个简单的例子来说明如何解决这个问题。提前谢谢。 这个链接不是我问题的答案

  • 问题内容: 我尝试将其转换为java.sql.Timestamp后插入,并使用以下代码段: 但是,这是给我的 有没有办法在没有毫秒的情况下获得输出? 问题答案: 您可以使用来减少毫秒数: 输出:

  • 问题内容: 我有以下整数形式的时间戳 我可以使用SQL进行转换: 如何在Java中转换它?这样它将返回值: 问题答案: 假设自1970年1月1日以来的时间(以秒为单位)。你可以试试

  • 问题内容: 我必须将linux时间戳转换为android日期。我从服务器获得此号码 我写了一个小代码段。 但这不能正确转换,这是我的结果 编辑 :通常我必须在这里 还有另一种获取正确日期的方法吗??? 问题答案: UNIX时间戳记应以毫秒为单位,因此将Long值乘以1000。因此,您的值1386889262将为1386889262000:

  • 问题内容: 我在mysql数据库中有一个timestamp变量列。尝试将Carbon时间戳转换为我可以在此处输入的内容,但仅返回Carbon对象,当我尝试使用Carbon对象的时间戳字符串时,它未在mysql中注册。 我的第一个var dump就像这样: 我的第二个var dump就是这样。 与“ published_at”有关的mysql列是一个时间戳变量。我想如何将其从Carbon对象转换为?

  • 问题内容: 我想将日期转换为时间戳,我的输入是。我用了 上面写着NaN ..有人能告诉你如何转换吗? 问题答案: var myDate = “26-02-2012”; myDate = myDate.split(“-“); var newDate = myDate[1]+”,”+myDate[0]+”,”+myDate[2]; console.log(new Date(newDate).getTi