Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在房间数据库中插入日期_Android_Android Room - Fatal编程技术网

Android 在房间数据库中插入日期

Android 在房间数据库中插入日期,android,android-room,Android,Android Room,我希望以YYYY-MM-DD等格式获取当前日期,以便我可以存储在数据库中,然后从数据库中读取,并处理日期之间的差异等 我已尝试使用日历实例获取当前日期 val calender=Calendar.getInstance() val date=DateFormat.getDateInstance().format(calender.time) 但是calendar实例正在返回日历类型数据,我想获取日期类型(因为我有一个日期类型数据的类型转换器) typeconverter class Conve

我希望以YYYY-MM-DD等格式获取当前日期,以便我可以存储在数据库中,然后从数据库中读取,并处理日期之间的差异等

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

val calender=Calendar.getInstance()
val date=DateFormat.getDateInstance().format(calender.time)
但是calendar实例正在返回日历类型数据,我想获取日期类型(因为我有一个日期类型数据的类型转换器)

typeconverter

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

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

如果希望日期采用YYYY-MM-DD格式, 您不需要
日历
日期
的实例

只需像这样使用
SimpleDataFormat

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
    }
}