Search code examples
androidandroid-datepicker

Android DatePicker : How to set value from DatePicker in EditText in this format dd-mm-yyyy


While setting a value in an EditText from a DatePicker, how do i set it as for ex 25-03-2014 instead of 25-3-2014.

Cos it displays 25-3-2014 with the missing '0' before the month(mm) everytime.

Thanks.


Solution

  • YourEditText = (EditText) findViewById(R.id.your_edittext);
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    String date = sdf.format(new Date(System.currentTimeMillis()));
        if (date.contains("/")) {
            date = date.replace("/", "-");
        }
    YourEditText.setText(date);
    

    Add Click Event on YourEditText inside xml :

    android:onClick="onTime"

    Code Snippet:

    Please extend your Activity from FragmentActivity

    public void onTime(View v) {
        DialogFragment newFragment = new FromDatePickerFragment();
        newFragment.show(getSupportFragmentManager(), "From Date");
    }
    
    
        class FromDatePickerFragment extends DialogFragment implements
            OnDateSetListener {
    
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            // Use the current time as the default values for the picker
            final Calendar c = Calendar.getInstance();
            int yr = c.get(Calendar.YEAR);
            int mnth = c.get(Calendar.MONTH);
            int day = c.get(Calendar.DAY_OF_MONTH);
            // Create a new instance of TimePickerDialog and return it
            return new DatePickerDialog(getActivity(), this, yr, mnth, day); 
        }
    
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            // TODO Auto-generated method stub
            String date;
            monthOfYear++;
            if (dayOfMonth < 10) {
                date = "0" + dayOfMonth + "-";
            } else {
                date = dayOfMonth + "-";
            }
            if (monthOfYear < 10) {
                date += "0" + monthOfYear + "-";
            } else {
                date += monthOfYear + "-";
            }
    
            date += year;
            YourEditText.setText(date);
        }
    }