2013-06-22 86 views
0

我從DatePicker中提取日期,根據用戶位置(我認爲)對其進行格式化。我想格式化這個日期,以便用戶可以選擇一種格式。在DatePicker中格式化日期,在數據庫中存儲日期

另外我想將此日期存儲到數據庫。爲了以後的使用,我想使用格式yyyyMMdd

我現在的問題仍然是格式化我的日期的DatePicker

這是我寫的,現在:

public static class DatePickerFragment extends DialogFragment implements 
      DatePickerDialog.OnDateSetListener, OnClickListener { 


     @Override 
     public Dialog onCreateDialog(Bundle savedInstanceState) { 
      // Use the current date as the default date in the picker 


      final Calendar c = Calendar.getInstance(); 
      int year = c.get(Calendar.YEAR); 
      int month = c.get(Calendar.MONTH); 
      int day = c.get(Calendar.DAY_OF_MONTH); 

      return new DatePickerDialog(getActivity(), this, year, month, day); 

     } 

     public void onDateSet(DatePicker view, int year, int month, int day) { 


      // Do something with the date chosen by the user 

       dateValue = String.valueOf("" + day + "." + (month + 1) + "." + year); 
       date_widget.setText(dateValue); 



      try { 
       SimpleDateFormat sdfToDate = new SimpleDateFormat(
         "yyyyMdd"); 

       dateDB = String.valueOf(sdfToDate.parse(dateValue)); 
       Log.e("Date", dateDB); 
      } catch (ParseException ex2) { 
       ex2.printStackTrace(); 

      } 





     } 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 
     } 
    } 

我不認爲這是要做到這一點,但DatePicker作品的最佳途徑。

Unparseable date: "22.6.2013" (at offset 7) 

回答

0

首先DATEVALUE的所有變化形式,以YYYYMMDD,然後嘗試解析:

由於我一個月只有1個位數時,試圖格式化我DATEVALUE我得到一個異常。

+0

我想在'ddMMyyyy'的按鈕中顯示'dateValue',但將其保存爲'yyyyMMdd'到數據庫。我其實不知道如何正確解析這個。 我編輯了我的代碼咯 –

0

當您解析字符串作爲日期刪除「。」來自字符串。

+0

會這樣做,但不能真正解析上面給出的錯誤。 int月份只有一位數字。 –

2

在帶有Calendar類的onDateSet方法中創建一個日期,然後按照自己的方式格式化。

public void onDateSet(DatePicker view, int year, int month, int day) 
{ 
      Calendar calendar = Calendar.getInstance(); 
      calendar.set(year,month,day); 

      Date date = calendar.getTime(); 
} 
+0

我需要格式化用戶選擇的日期。這對我有什麼幫助? –

+0

如果有日期,格式化太簡單了......請檢查此頁面http://developer.android.com/reference/java/text/SimpleDateFormat.html – asish

+0

@ mike.b93您可以將「date」對象存儲在某處然後根據需要將其格式化爲任意用途,例如將其顯示給用戶或將其存儲在數據庫中。 – rubenlop

0

試試這個代碼:

String date = "22.6.2013"; SimpleDateFormat sdf = new SimpleDateFormat("dd.M.yyyy"); Date date1 = sdf.parse(date);

System.out.println("Formatted Date : "+date1);

sdf = new SimpleDateFormat("yyyyMdd"); System.out.println("Final Format : "+sdf.format(date1));

+0

這仍然只能給我一個月的1位數。這不會讓我以後比較日期。順便說一句:你不需要每次都添加一個答案。你可以評論... –

0

的SimpleDateFormat小號df = new SimpleDateFormat(「yyyyMMdd」)

String formattedDate = sdf.format(view.getCalendarView()。getDate());

+0

我需要格式化日期,用戶選擇'DatePicker'我不認爲這會幫助我與 –