¿Cómo obtener la fecha del widget DatePicker en Android?

Utilizo un widget DatePicker en Android para que el usuario establezca una fecha, y quiero obtener el valor de la fecha cuando se hace clic en un botón de confirmación, ¿cómo puedo hacer eso?

Prueba esto:

  DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker1); int day = datePicker.getDayOfMonth(); int month = datePicker.getMonth() + 1; int year = datePicker.getYear(); 

Me las arreglé para establecer el MinDate y el MaxDate programáticamente así:

  final Calendar c = Calendar.getInstance(); int maxYear = c.get(Calendar.YEAR) - 20; // this year ( 2011 ) - 20 = 1991 int maxMonth = c.get(Calendar.MONTH); int maxDay = c.get(Calendar.DAY_OF_MONTH); int minYear = 1960; int minMonth = 0; // january int minDay = 25; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.create_account); BirthDateDP = (DatePicker) findViewById(R.id.create_account_BirthDate_DatePicker); BirthDateDP.init(maxYear - 10, maxMonth, maxDay, new OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { if (year < minYear) view.updateDate(minYear, minMonth, minDay); if (monthOfYear < minMonth && year == minYear) view.updateDate(minYear, minMonth, minDay); if (dayOfMonth < minDay && year == minYear && monthOfYear == minMonth) view.updateDate(minYear, minMonth, minDay); if (year > maxYear) view.updateDate(maxYear, maxMonth, maxDay); if (monthOfYear > maxMonth && year == maxYear) view.updateDate(maxYear, maxMonth, maxDay); if (dayOfMonth > maxDay && year == maxYear && monthOfYear == maxMonth) view.updateDate(maxYear, maxMonth, maxDay); }}); // BirthDateDP.init() } // activity 

funciona bien para mí, disfruta 🙂

quieres decir que quieres agregar el widget DatePicker a tus aplicaciones.

Declaración de variable global en su clase de actividad:

 private Button mPickDate; private int mYear; private int mMonth; private int mDay; static final int DATE_DIALOG_ID = 0; 

escriba este código en la función onCreate ():

 //date picker presentation mPickDate = (Button) findViewById(R.id.pickDate);//button for showing date picker dialog mPickDate.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { showDialog(DATE_DIALOG_ID); } }); // get the current date final Calendar c = Calendar.getInstance(); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); // display the current date updateDisplay(); 

escriba esas funciones fuera de la función onCreate ():

 //return date picker dialog @Override protected Dialog onCreateDialog(int id) { switch (id) { case DATE_DIALOG_ID: return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay); } return null; } //update month day year private void updateDisplay() { mBodyText.setText(//this is the edit text where you want to show the selected date new StringBuilder() // Month is 0 based so add 1 .append(mYear).append("-") .append(mMonth + 1).append("-") .append(mDay).append("")); //.append(mMonth + 1).append("-") //.append(mDay).append("-") //.append(mYear).append(" ")); } // the call back received when the user "sets" the date in the dialog private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { mYear = year; mMonth = monthOfYear; mDay = dayOfMonth; updateDisplay(); } }; 

también puedes usar este código …

 datePicker = (DatePicker) findViewById(R.id.schedule_datePicker); int day = datePicker.getDayOfMonth(); int month = datePicker.getMonth() + 1; int year = datePicker.getYear(); SimpleDateFormat dateFormatter = new SimpleDateFormat("MM-dd-yyyy"); Date d = new Date(year, month, day); String strDate = dateFormatter.format(d); 

La clase DatePicker tiene métodos para obtener el mes, el año, el día del mes. O puede usar OnDateChangedListener .

U también puede usar te Calendar.GregorianCalendar clase java

  GregorianCalendar calendarBeg=new GregorianCalendar(datePicker.getYear(), datePicker.getMonth(),datePicker.getDayOfMonth()); Date begin=calendarBeg.getTime();