【问题标题】:How do I convert a Firestore date/Timestamp to Date in Kotlin?如何在 Kotlin 中将 Firestore 日期/时间戳转换为日期?
【发布时间】:2019-09-13 08:51:36
【问题描述】:

我正在使用 firestore,当我从 firestore 获取时间戳时卡住了。我如何将此Timestamp(seconds=1556006384, nanoseconds=994000000) 转换为 Kotlin 中的日期。

我的最低 SDK 是 21,所以下面的代码不起作用

val timestamp = it["time"] as com.google.firebase.Timestamp
val milliseconds = timestamp.seconds * 1000 + timestamp.nanoseconds / 1000000
val tz = ZoneId.of("Asia/Jakarta (UTC+07:00)")
val localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(milliseconds), tz)

谢谢。

【问题讨论】:

标签: android firebase kotlin google-cloud-firestore


【解决方案1】:

我使用这个类来序列化时间戳

import com.google.firebase.Timestamp

data class Article (
var createdAt: Timestamp? = Timestamp.now(),
var title: String = "",
var image: String = ""
)

【讨论】:

    【解决方案2】:

    我正在使用此代码:

    val timestamp = it["time"] as com.google.firebase.Timestamp
    val milliseconds = timestamp.seconds * 1000 + timestamp.nanoseconds / 1000000
    val sdf = SimpleDateFormat("MM/dd/yyyy")
    val netDate = Date(milliseconds)
    val date = sdf.format(netDate).toString()
    Log.d("TAG170", date)
    

    【讨论】:

      【解决方案3】:

      将两个答案放在首位,这对我有用。

      val timestamp = data[TIMESTAMP] as com.google.firebase.Timestamp
                  val date = timestamp.toDate()
      

      【讨论】:

        【解决方案4】:

        在 Firestore Timestamp 对象上调用 toDate() 以返回 Date 对象。

        【讨论】:

        • @wesleyfranks 在对象上调用方法应该非常简单。假设您的 Timestamp 对象位于名为“ts”的 val 中:ts.toDate()
        猜你喜欢
        • 2018-04-25
        • 2020-08-10
        • 2020-11-17
        • 2019-05-10
        • 2018-12-09
        • 2020-02-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多