如何在更新android数据库时保留旧的日期和时间?
问题描述:
在我的程序中进行更新时,如果用户没有使用数据阅读器将日期重新输入到editText框(一个用于日期,另一个用于时间),那么更新将插入到db中而不是旧的日期。我如何获得它以保持旧时间?下面是我用来输入INT int类型的日期和时间的代码进入DB如何在更新android数据库时保留旧的日期和时间?
newTime.year = dateAndTime.get(Calendar.YEAR);
newTime.month = dateAndTime.get(Calendar.MONTH);
newTime.monthDay = dateAndTime.get(Calendar.DAY_OF_MONTH);
newTime.hour = dateAndTime.get(Calendar.HOUR_OF_DAY);
newTime.minute = dateAndTime.get(Calendar.MINUTE);
enteredTime = (int) ((newTime).toMillis(true)/1000);
这里是设置日期和时间码EDITTEXT被点击
public void date(View v) {
int inType = date.getInputType(); // backup the input type
date.setInputType(InputType.TYPE_NULL); // disable soft input
date.setInputType(inType);
new DatePickerDialog(report.this, d, dateAndTime.get(Calendar.YEAR),
dateAndTime.get(Calendar.MONTH),
dateAndTime.get(Calendar.DAY_OF_MONTH)).show();
}
public void time(View v) {
int inType = time.getInputType(); // backup the input type
time.setInputType(InputType.TYPE_NULL); // disable soft input
time.setInputType(inType);
new TimePickerDialog(report.this, t,
dateAndTime.get(Calendar.HOUR_OF_DAY),
dateAndTime.get(Calendar.MINUTE), true).show();
}
private void updateLabel() {
date.setText(fmtDate.format(dateAndTime.getTime()));
}
private void updateLabel1() {
time.setText(fmtTime.format(dateAndTime.getTime()));
}
DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
dateAndTime.set(Calendar.YEAR, year);
dateAndTime.set(Calendar.MONTH, monthOfYear);
dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateLabel();
}
};
TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
dateAndTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
dateAndTime.set(Calendar.MINUTE, minute);
updateLabel1();
}
};
答
时我不确定我是否完全理解你的问题,但有一种可能性是将文本框设置为你想成为标准的东西。如果您在毫秒(dateMillis)时,你可以创建一个日历:
Date d = new Date(dateMillis);
Calendar c = Calendar.getInstance();
c.setTime(d);
或使用dateformatter得到你想要的格式:
Date d = new Date(dateMillis);
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yy");
String date = formatter.format(d);
我有一个小麻烦解释它。用户选择数据和时间,然后将数据输入到数据库中。之后,进入同一屏幕并更新屏幕上的一些信息,但不更新日期。数据库应该保留旧的信息,但上面的代码不断输入当前日期。这是更好的解释吗? – Aaron 2012-04-09 19:07:43
我猜dateAndTime是一个日历,那么你可以用dateAndTime.setTime(new Date(millis))设置日期;并且您发布的代码应该返回旧日期。 如果不是这样,我认为你必须发布更多的代码,而不是更多的问题。 – Heinrisch 2012-04-09 19:32:40
我将代码添加到了我如何获取日期和时间,当我点击editTexts – Aaron 2012-04-09 19:40:49