我有一個簡單的待辦事項應用程序,其中每個「待辦事項」都有一個標題,說明,完成狀態,創建日期和修改日期。Android SQLite:長時間轉換爲日期並返回
Todo.java
package com.anna.todos.models;
import java.util.Date;
public class Todo {
private long id;
private String title;
private String text;
private boolean done;
private Date createdDate;
private Date modifiedDate;
public Todo() {
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public boolean isDone() {
return done;
}
public void setDone(boolean done) {
this.done = done;
}
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public Date getModifiedDate() {
return modifiedDate;
}
public void setModifiedDate(Date modifiedDate) {
this.modifiedDate = modifiedDate;
}
}
的創建的日期和修改的日期被存儲在SQLite數據庫爲整數。當我從數據庫中獲取它們時,我希望能夠將它們正確地轉換爲Date對象,並且當我去保存待辦事項時,我希望能夠獲得這些Date對象的整數或長整數。 (這是根據來自另一個StackOverflow post的建議完成的)。
下面是我用來從數據庫中獲取的日期代碼:
createdDate = new Date(cursor.getInt(4) * 1000);
modifiedDate = new Date(cursor.getInt(5) * 1000);
並保存日期....
createdDate = Calendar.getInstance().getTime();
values.put(DatabaseHelper.TODO_CREATED_DATE, createdDate.getTime() * 1000);
我現在的問題是創建和修改日期未被正確轉換。下面是從數據庫加載日期的調試語句:
04-29 09:21:35.649:I/TodoEditActivity(3954):populateFields()=> createdDate = 01 Jan 1970 10:33:01 04 -29 09:21:35.649:I/TodoEditActivity(3954):populateFields()=> modifiedDate = 1970年1月1日10時34分19秒
以及保存日期的調試聲明:
04-29 09:22:00.653:I/TodoEditActivity(3954):saveTodo()=> createdDate = 01 Jan 1970 10:33:01 04-29 09:22:00.653:I/TodoEditActivity(3954):saveTodo()=> modifiedDate = 29 Apr 2012 09:22:00
有什麼我應該做的,以解決這個問題?
我會問自己,爲什麼modifiedDate似乎是唯一的一個工作 – mindandmedia 2012-04-28 23:55:20
事實證明,我將cursor.getInt的返回值乘以另一個int,而不是長的 – MissPiplup 2012-04-29 00:19:01