日历类型转换器房间(科特琳)

时间:2019-02-18 13:32:40

标签: sqlite kotlin android-room android-architecture-components typeconverter

我正在尝试使用以下TypeConverter将时间戳记保存在我的会议室数据库中:

class Converters {

    @TypeConverter
    fun fromTimestamp(value: Long?): Calendar? {

        if(value == null) return null

        val cal = GregorianCalendar()
        cal.timeInMillis = value
        return cal
    }

    @TypeConverter
    fun toTimestamp(timestamp: Calendar?): Long? {

        if(timestamp == null) return null

        return timestamp.timeInMillis
    }
}

我的两个实体包含以下列 :

@ColumnInfo(name = "timestamp")
val timestamp: Calendar?,

但是在尝试构建项目时出现编译错误-使用开发人员参考指南中的Date TypeConverter示例时,我没有任何问题。

我无法看到实际的错误,因为如果与Room相关的代码有问题,我只会遇到一堆数据绑定“找不到符号”错误。

1 个答案:

答案 0 :(得分:2)

使用:

object Converters {
    @TypeConverter
    @JvmStatic
    fun fromTimestamp(value: Long?): Calendar? = value?.let { value ->
        GregorianCalendar().also { calendar ->
            calendar.timeInMillis = value
        }
    }

    @TypeConverter
    @JvmStatic
    fun toTimestamp(timestamp: Calendar?): Long? = timestamp?.timeInMillis
}

@TypeConverters(Converters::class)
abstract class AppDatabase : RoomDatabase() {