получить от DatePicker Android - PullRequest
       3

получить от DatePicker Android

31 голосов
/ 07 декабря 2011

Я хочу получить дату из виджета DatePicker в Android Я пробовал с этим

Date date1= (Date) new Date
   (dpBirthDate.getYear(), dpBirthDate.getMonth(), dpBirthDate.getDayOfMonth());
date1  = (Date) new SimpleDateFormat("yyyy-MM-dd").parse(date1.toString());

Но я получаю дату, подобную этой mon 7 dec 2011 time ... и все, что я хочу получить, это yyyy-MM-dd формат для хранения его в базе данных.

Я также пытался объединить год-месяц-день , как это, но проблема, например, сегодня 2011-12-7 день должен быть 07, чтобы быть действительным

Не могли бы вы помочь мне, пожалуйста.

Ответы [ 3 ]

67 голосов
/ 29 января 2013

Я использую это:

    /**
 * 
 * @param datePicker
 * @return a java.util.Date
 */
public static java.util.Date getDateFromDatePicker(DatePicker datePicker){
    int day = datePicker.getDayOfMonth();
    int month = datePicker.getMonth();
    int year =  datePicker.getYear();

    Calendar calendar = Calendar.getInstance();
    calendar.set(year, month, day);

    return calendar.getTime();
}
13 голосов
/ 07 декабря 2011

Вы должны использовать SimpleDateFormat.format, чтобы преобразовать этот Date объект в String, как это

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateString = sdf.format(date1);

Я думаю, у тебя это было задом наперед. Вам нужно использовать format для перехода от даты к строке и parse для перехода от строки к дате.

2 голосов
/ 06 июня 2018

Я знаю, что это старый, но я изо всех сил пытался найти его. Так что для потомков

Сценарий: для представления требуется дата в гггг-мм-дд

    date_field = (EditText)findViewById(R.id.input_date);
        date_field.setFocusable(false); // disable editing of this field
        date_field.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(final View v) {
                chooseDate();
            }
        });

 private void chooseDate() {
        final Calendar calendar = Calendar.getInstance();
        final int year = calendar.get(Calendar.YEAR);
        final int month = calendar.get(Calendar.MONTH);
        final int day = calendar.get(Calendar.DAY_OF_MONTH);
        DatePickerDialog datePicker =
            new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(final DatePicker view, final int year, final int month,
                                      final int dayOfMonth) {

                    @SuppressLint("SimpleDateFormat")
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    calendar.set(year, month, dayOfMonth);
                    String dateString = sdf.format(calendar.getTime());

                    date_field.setText(dateString); // set the date
                }
            }, year, month, day); // set date picker to current date

        datePicker.show();

        datePicker.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(final DialogInterface dialog) {
                dialog.dismiss();
            }
        });
    }

Надеюсь, это кому-нибудь поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...