1

我必须在 sqlite db 中输入日期。我得到错误,我不明白为什么。有人能帮我吗?

SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
String strDate = sdf.format( dateAndTime );
cv.put(MyTable.DATE, strDate);

这是错误:

Caused by: java.lang.IllegalArgumentException
    at java.text.DateFormat.format(DateFormat.java:361)
    at java.text.Format.format(Format.java:93)
Caused by: java.lang.IllegalArgumentException
    at java.text.DateFormat.format(DateFormat.java:361)
    at java.text.Format.format(Format.java:93)

这是我的日期选择器:

public void chooseDate(View v) {
new DatePickerDialog(Movimenti.this, d,
                      dateAndTime.get(Calendar.YEAR),
                      dateAndTime.get(Calendar.MONTH),
                      dateAndTime.get(Calendar.DAY_OF_MONTH))
  .show();}

private void updateLabel() {
  mDataScelta.setText(fmtDateAndTime
                          .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();
}
};
4

2 回答 2

0

format 方法接受 Date 对象的实例。而且您的“dateAndTime”变量似乎没有保存 Date 对象的实例。

于 2013-10-13T17:11:03.867 回答
0

请记住,这Calendar.getInstance()将为您提供一个日期设置为当前时刻的日历。

如果您通过对话框获取日期并将其设置dateAndTime为据我所知是日历对象,则最好调用 dateAndTime.getTime().getTime()以获取以毫秒为单位的时间(第一个getTime()返回日期对象,第二个返回毫秒时间date),然后将日期以毫秒为单位传递给该format方法。

于 2013-11-26T09:57:18.270 回答