2013-10-13 55 views
1

我必須在sqlite數據庫中輸入日期。我得到錯誤,我不明白爲什麼。有人能幫我嗎?錯誤SimpleDateFormat

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(); 
} 
}; 
+0

**這是錯誤:** 產生的原因:在java.text.Format.format在java.text.DateFormat.format(DateFormat.java:361) java.lang.IllegalArgumentException異常 (格式。 java:93) 引發java.lang.IllegalArgumentException 在java.text.DateFormat.format(DateFormat.java:361) 在java.text.Format.format(Format.java:93) – user2876485

+0

你shold編輯你的問題,而不是添加錯誤的細節作爲意見 –

+2

我懷疑你的'dateAnndTime'變量包含不符合指定格式的東西。 –

回答

0

格式方法接受Date對象的實例。看起來你的'dateAndTime'變量沒有持有Date對象的實例。

+0

顯然'dateAndTime'的類型是'Calendar'。 – rubenlop

+0

對於Calendar類型是正確的。我該如何改變它? DateFormat fmtDateAndTime = DateFormat.getDateInstance(); 日曆dateAndTime = Calendar.getInstance(); – user2876485

+0

Date dateAndTime = Calendar.getInstance()。getTime(); –

0

請注意,Calendar.getInstance()會爲您提供日期,並將日期設置爲當前時間。

如果通過對話得到了日期,將其設置爲dateAndTime其中,據我瞭解是一個日曆對象,你最好叫dateAndTime.getTime().getTime()得到以毫秒爲單位的時間(第一getTime()返回日期對象,在秒返回從日期開始的毫秒時間),然後以毫秒爲單位將日期傳遞給format方法。