Комната не имеет встроенной поддержки для хранения дат , вам необходимо преобразовать ее в значения LONG при вставке и чтении в базу данных и из нее.Следовательно, мы несем ответственность за указание в базе данных Room, как преобразовывать данные.
Для этого, благодаря архитектуре помещения, у нас есть TypeConverter class.Ну, не увлекайтесь, не существует специального класса, который вы можете просто расширить и выполнить, но это то, что вы должны написать с нуля, но он использует аннотации, чтобы он работал с Room.
Например, при работе с датами:
import android.arch.persistence.room.TypeConverter;
import java.util.Date;
//Type-Converter Class for Room
public class DateConverter {
@TypeConverter
// Long value to Date value
public static Date toDate(Long timestamp) {
return timestamp == null ? null : new Date(timestamp);
}
@TypeConverter
// Date value to Long value
public static Long toTimestamp(Date date) {
return date == null ? null : date.getTime();
}
}
Теперь мы должны указать нашему классу базы данных использовать этот класс TypeConverter, используя @ TypeConverters (убедитесь, что используется множественная версия).
@Database(entities = {Entity.class}, version = 1)
@TypeConverters(DateConverter.class)
public abstract class AppDatabase extends RoomDatabase {...}
Вы готовы качаться!