【发布时间】:2019-02-08 13:23:05
【问题描述】:
我正在使用带有多个表的 SQLite 数据库。其中许多都有 DATETIME 类型的列。
我已开始将我的数据库迁移到 Room。但我不知道在实体类中使用什么数据类型在表中创建 DATETIME 类型的列。
【问题讨论】:
标签: android sqlite android-sqlite android-room
我正在使用带有多个表的 SQLite 数据库。其中许多都有 DATETIME 类型的列。
我已开始将我的数据库迁移到 Room。但我不知道在实体类中使用什么数据类型在表中创建 DATETIME 类型的列。
【问题讨论】:
标签: android sqlite android-sqlite android-room
你需要使用 TypeConvertor
如下定义类型转换器
public class TimestampConverter {
static DateFormat df = new SimpleDateFormat(Constants.TIME_STAMP_FORMAT);
@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;
}
}
}
在日期类型的字段中添加@TypeConverters注解
@ColumnInfo(name = "created_date")
@TypeConverters({TimestampConverter.class})
public Date createDate;
【讨论】:
"yyyy-MM-dd HH:mm:ss"