如何使用 Room 在 SQLite 中使用 DateTime 数据类型?

Dar*_*asi 3 sqlite android android-sqlite android-room

我正在使用带有多个表的 SQLite 数据库。其中许多都有 DATETIME 类型的列。

我已经开始将我的数据库迁移到 Room。但我不知道在实体类中使用什么数据类型来创建表中列的 DATETIME 类型。

kar*_*ran 5

您需要使用 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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

@TypeConverters向具有日期类型的字段添加注释

@ColumnInfo(name = "created_date")
@TypeConverters({TimestampConverter.class})
public Date createDate;
Run Code Online (Sandbox Code Playgroud)

  • @Gentleman 使用这个 `"yyyy-MM-dd HH:mm:ss"` (2认同)