gpt4 book ai didi

android - 如何从房间数据库中获取日期

转载 作者:行者123 更新时间:2023-12-04 15:42:20 25 4
gpt4 key购买 nike

我使用房间数据库并想在数据库中保存日期。

我想以这种格式"dd/MM/yy" 将日期保存到数据库中。

所以我创建了 DateConverter 类来从/写入数据库。

现在我可以用我最喜欢的格式将日期保存到数据库中,但我无法从数据库中以我最喜欢的格式获取日期,当我获取日期时,我会得到日期的所有信息(日期、时间、日期)。

我可以使用 DateConverter 中的 toTimestamp 方法,但我认为这不是个好主意。

我想知道有没有一种方法可以不使用 DateConverter.toTimestamp 直接获取日期。

@Entity(tableName = "notes")
public class NoteEntity {
@PrimaryKey(autoGenerate = true)
private int id;
private Date date;
private String text;

@Ignore
public NoteEntity() {
}

public NoteEntity(int id, Date date, String text) {
this.id = id;
this.date = date;
this.text = text;
}}

@Ignore
public NoteEntity(Date date, String text) {
this.date = date;
this.text = text;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public Date getDate() {
return date;
}

public void setDate(Date date) {
this.date = date;
}

public String getText() {
return text;
}

public void setText(String text) {
this.text = text;
}

日期转换器

public class DateConverter {

@TypeConverter
public static Date toDate(String stringdate){
return stringdate == null ? null : new Date(stringdate);
}

@TypeConverter
public static String toTimestamp(Date date){
SimpleDateFormat dateTimeFormat = new SimpleDateFormat("dd/MM/yy");
return dateTimeFormat.format(date);
}
}

@Dao
public interface NoteDao {

@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAll(List<NoteEntity> noteEntity);

@Query("SELECT * FROM notes")
List<NoteEntity> loadAllNotes();
}

示例数据

public static List<NoteEntity> getNotes() {
List<NoteEntity> notes = new ArrayList<>();
notes.add(new NoteEntity(new Date(2019,8,5), SAMPLE_TEXT_1));
.
.
.
return notes;
}

主要

AppDatabase appDatabase = AppDatabase.getInstance(context);

appDatabase.noteDao().insertAll(getNotes());

List<NoteEntity> notesData = new ArrayList<>();
notesData = appDatabase.noteDao().loadAllNotes();
Log.i("TestOutput1", String.valueOf(notesData.get(0).getDate()));
Log.i("TestOutput2", DateConverter.toTimestamp(notesData .get(0).getDate()));

LogCat

I/TestOutput1: Mon Aug 05 00:00:00 GMT+04:30 2019
I/TestOutput2: 05/08/19

最佳答案

保存为字符串

val dateFormat : DateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") 
try {
val date: Date = Date();
val dateTime = dateFormat.format(date)
println("Current Date Time : " + dateTime)
} catch (e:ParseException ) {
println(e)
}

关于android - 如何从房间数据库中获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57387691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com