在会议室数据库中插入日期

时间:2019-10-13 09:01:42

标签: android android-room

我想以 YYYY-MM-DD 这样的格式获取当前日期,以便我可以将其存储在数据库中,以后再从数据库中读取,并使用诸如日期之间的差等日期。 / p>

我尝试使用日历实例获取当前日期。

val calender=Calendar.getInstance()
val date=DateFormat.getDateInstance().format(calender.time)

但是日历实例正在返回日历类型数据,我想获取日期类型(因为我有一个用于日期类型数据的类型转换器)

typeconverter

class Converters {
@TypeConverter
fun fromTimestamp(value: Long?): Date? {
    return value?.let { Date(it) }
}

@TypeConverter
fun dateToTimestamp(date: Date?): Long? {
    return date?.time?.toLong()
 }
}

1 个答案:

答案 0 :(得分:0)

如果您要使用 YYYY-MM-DD 格式的日期, 比您不需要CalendarDate的实例。

只需像这样使用SimpleDateFormat

class Converters {

    @TypeConverter
    fun fromTimestamp(timeStamp: Long?): String? {
        return timeStamp?.let { FORMATTER.format(timeStamp) }
    }

    @TypeConverter
    fun dateToTimestamp(timeStamp: String?): Long? {
        return timeStamp?.let { FORMATTER.parse(it)?.time }
    }

    companion object{

        val FORMATTER = SimpleDateFormat("yyy-MM-dd")
    }
}

但是如果您出于任何原因想要日历实例,这可能会很方便(尽管我建议您使用上述(基于时间戳/字符串的)方法>

class Converters {

    @TypeConverter
    fun fromTimestamp(value: Long?): Calendar? {
        return value?.let { Calendar.getInstance().apply { timeInMillis = it } }
    }

    @TypeConverter
    fun dateToTimestamp(calendar: Calendar?): Long? {
        return calendar?.timeInMillis
    }
}