Android 在房间数据库中插入日期
我希望以YYYY-MM-DD等格式获取当前日期,以便我可以存储在数据库中,然后从数据库中读取,并处理日期之间的差异等 我已尝试使用日历实例获取当前日期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
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
}
}