解码字符串(在数据类中)作为Kotlin中的日期



如何将包含在数据类中的字符串解码为日期?我有几个字符串,它们实际上是日期("2022-11-24T23:37:34.668Z")。这些数据存储在firebase中的文档中(显然文档中不仅有日期字符串,还有其他类型)。我想要反序列化,这样表示日期的字符串就会被自动解析。

目前我解码如下:

private inline fun <reified T> parse(snapshot: DocumentSnapshot?): T? {
return snapshot?.toObject<T>(T::class.java)
}

我没有看到如何指定日期解码器的方法。那么,我该如何做到这一点呢?

确实没有办法为特定的字段/属性指定自定义解码器。

我能很快想到的最好的选择是:

  • 在数据类中添加自定义函数,将字符串解析为日期,并将新值设置为日期并将其标记为排除在数据库之外。
  • 为字符串字段定义一个自定义类(例如StringDate),它处理相同的解析和序列化,然后在你的数据类中使用。

我不知道现有的这两个公共实现。

当然,最简单的选择是将日期/时间值存储在Timestamp字段中,然后Firestore SDK会自动将其转换为每个支持平台的本机日期/时间类型。

最新更新