2014-01-10 194 views
1

我想顯示的日期格式2014年1月1日,而從Android的日期選擇器 選擇的日期,但我得到了格式的2014年1月1日,由於這一點,我得到的問題,而搜索日期如何在android Datepicker中更改日期日曆格式?

這裏是我的代碼

// On click Of Button 
@Override 
public void onClick(View v) { 

    switch (v.getId()) {   
    case R.id.btnAESubmit: 
     saveData(); 
     break; 
    case R.id.lblAEDate: 
     showDialog(AE_DT_DIALOG_ID); 
     break; 
    } 
} 

// to create Date dialog 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case AE_DT_DIALOG_ID: 
     final Calendar calendar = Calendar.getInstance(); 
     int yy = calendar.get(Calendar.YEAR); 
     int mm = calendar.get(Calendar.MONTH); 
     int dd = calendar.get(Calendar.DAY_OF_MONTH); 

     // set date picker as current date 
     return new DatePickerDialog(this, datePickerListener, yy, mm, dd); 
    } 
    return null; 
} 

// DAte Listener Call on date dialog call 
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { 
    // when dialog box is closed, below method will be called. 
    public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { 
     year = selectedYear; 
     month = selectedMonth;   
     day = selectedDay; 
     StringBuilder Date;   
     Date = new StringBuilder().append(day).append("-").append(month + 1).append("-").append(year).append(" "); 

     // set selected date into lbl View 
     lblAEDate.setText(Date); 
    } 
}; 

如何以這種方式格式化所選日期01-01-2014?

回答

4
String formattedDay = (String.valueOf(day)); 
String formattedMonth = (String.valueOf(month)); 

if(day < 10) 
{ 
    formattedDay = "0" + day; 
} 

if(month< 10) 
{ 
    formattedMonth = "0" + Month; 
} 

把這段代碼的權利之前StringBuilder Date;和刪除year = selectedYear; month = selectedMonth;
day = selectedDay;

然後通過formattedDayformattedMonthyear到您的StringBuilder。

希望它適合你。

+0

是正確的方法..?因爲我也在做同樣的事情,如果條件 –

+0

它爲我工作..你測試了它?如果條件是你在做同樣的事情呢? – GeertG

1

試試這個,你可以設置dateformat爲任何你想要的,查看SimpleDateFormat JavaDoc的例子。

Calendar calendar = Calendar.getInstance(); 
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
String test = dateFormat.format(calendar.getTime()); 
Log.e("TEST", test); 
2

這裏我得到的替代爲接受的答案

private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { 
    // when dialog box is closed, below method will be called. 
    public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) {   
     String dt; 
     year = selectedYear; 
     month = selectedMonth + 1; 
     day = selectedDay; 
     try { 
      dt = day + "-" + month + "-" + year; 

      SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); // Set your date format 
      Date currentDt = null;   
      currentDt = sdf.parse(dt); 
      String d = sdf.format(currentDt); 
      // set selected date into lbl View 
      lblDate.setText(d); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }  
    } 
}; 
3
public void onDateSet(DatePicker view, int yy, int mm, int dd) { 
    populateSetDate(yy, mm + 1, dd); 
} 

public void populateSetDate(int year, int month, int day) { 
    String formattedDay = (String.valueOf(day)); 
    String formattedMonth = (String.valueOf(month)); 

    if (day < 10) { 
     formattedDay = "0" + day; 
    } 

    if (month < 10) { 
     formattedMonth = "0" + month; 
    } 

    btnDate.setText(formattedDay + "-" + formattedMonth + "-" + year); 
} 
相關問題