【问题标题】:How to change date calender format in android Datepicker?如何在 android Datepicker 中更改日期日历格式?
【发布时间】:2014-01-10 13:26:48
【问题描述】:

我想在从 android 日期选择器中选择日期时显示日期格式 01-01-2014 但我得到格式 1-1-2014 因此我在搜索日期时遇到问题

这是我的代码

// 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?

【问题讨论】:

    标签: android date datepicker


    【解决方案1】:
    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。

    希望它对你有用。

    【讨论】:

    • 这是正确的方式..?因为我也在 if 条件下做同样的事情
    • 它对我有用.. 你测试过吗?在什么情况下你做同样的事情?
    【解决方案2】:
    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);
    }
    

    【讨论】:

      【解决方案3】:

      在这里我得到了接受答案的替代方案

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

      【讨论】:

        【解决方案4】:

        试试这个,你可以设置任何你想要的日期格式,查看SimpleDateFormat JavaDoc的例子。

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

        【讨论】:

          猜你喜欢
          • 2020-12-17
          • 2020-01-03
          • 2019-04-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多