Android Room:字符串日期到长的类型转换器?
我将日期作为字符串存储在数据库中。这在使用MySQL时效果很好,但是在android中使用room时,我无法在我的查询中正确地按date to和date from进行搜索,因为room无法识别字符串日期。我想知道是否可以使用类型转换器简单地将字符串转换为长字符串。而不是重做我的整个数据库来存储日期而不是字符串,然后从日期转换为长 对此,我们将不胜感激Android Room:字符串日期到长的类型转换器?,android,android-room,Android,Android Room,我将日期作为字符串存储在数据库中。这在使用MySQL时效果很好,但是在android中使用room时,我无法在我的查询中正确地按date to和date from进行搜索,因为room无法识别字符串日期。我想知道是否可以使用类型转换器简单地将字符串转换为长字符串。而不是重做我的整个数据库来存储日期而不是字符串,然后从日期转换为长 对此,我们将不胜感激 /** * Method used to gain the current date. * * @return */ private Da
/**
* Method used to gain the current date.
*
* @return
*/
private Date currentDate() {
calendar.add(Calendar.DATE, 0);
return calendar.getTime();
}
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm");
String dateTimeOfWorkout = dateFormat.format(currentDate());
我明白了:
@TypeConverter
public static Date fromTimestamp(String value) {
if (value != null) {
try {
return df.parse(value);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
} else {
return null;
}
质疑
更新:有了上面的打字机转换器和查询,在1个月的时间里它仍然不能对结果进行排序。它只是显示所有内容。而不重做整个数据库。这可以通过数据库迁移来完成 使用类型转换器可以将日期存储在数据库中 添加用于将日期转换为长时间的类
public class DateConverter {
@TypeConverter
public static Date toDate(Long timestamp){
return timestamp == null ? null : new Date(timestamp);
}
@TypeConverter
public static Long toTimestamp(Date date){
return date == null ? null : date.getTime();
}
}
现在,我们告诉房间使用我们使用TypeConverts和Anotion添加的日期转换器
@Database(entities = {MyEntity.class},version = 1,exportSchema = false)
@TypeConverters(DateConverter.class)
public abstract class MyDatabase extends RoomDatabase {
//room database
}
现在,我们可以在实体类中使用Date作为数据类型,而无需重做整个数据库。这可以通过数据库迁移来完成 使用类型转换器可以将日期存储在数据库中 添加用于将日期转换为长时间的类
public class DateConverter {
@TypeConverter
public static Date toDate(Long timestamp){
return timestamp == null ? null : new Date(timestamp);
}
@TypeConverter
public static Long toTimestamp(Date date){
return date == null ? null : date.getTime();
}
}
现在,我们告诉房间使用我们使用TypeConverts和Anotion添加的日期转换器
@Database(entities = {MyEntity.class},version = 1,exportSchema = false)
@TypeConverters(DateConverter.class)
public abstract class MyDatabase extends RoomDatabase {
//room database
}
现在,我们可以在实体类中将日期用作数据类型,这可能会对您有所帮助:您可以发布字符串的示例格式吗?您可以准确地显示您的日期格式吗?示例。将字符串的格式添加到问题中这可能会帮助您:您可以发布字符串的示例格式吗?您可以准确显示您的日期格式吗?示例。将字符串的格式添加到问题中。我从阅读文档中了解到了这一点。我的问题是“是否可以使用类型转换器将字符串转换为long。而不必重做整个数据库来存储日期而不是字符串,然后从日期转换为long。”可以使用数据库迁移来完成,而无需再次执行整个数据库。我从阅读文档中了解到这一点。我的问题是“是否可以使用类型转换器简单地将字符串转换为long。而不必重做整个数据库来存储日期而不是字符串,然后从日期转换为long。”可以使用数据库迁移来完成,而无需再次执行整个数据库。