validar studio propiedades poner obtener nacimiento hora fecha como calendario android android-datepicker android-timepicker

studio - Cómo emitir y obtener valores desde el selector de fecha y el selector de hora en Android



selector de fecha y hora en android studio (9)

getDateTimeFromPickers ()

Método simple para obtener la fecha y la hora de un Selector de fecha y un Selector de tiempo

Advertencia: usa DateTime JodaTime como la devolución. Puedes modificarlo para usar lo que quieras.

// Gets the Date and Time from a DatePicker and TimePicker and return a JodaTime DateTime from them, in current timezone. // private DateTime getDateTimeFromPickers( int DatePickerId, int TimePickerId ) { DatePicker dp = (DatePicker) findViewById(DatePickerId); TimePicker tp = (TimePicker) findViewById(TimePickerId); String year = Integer.toString(dp.getYear()) ; String month = StringUtils.leftPad( Integer.toString(dp.getMonth() + 1), 2, "0" ); String day = StringUtils.leftPad( Integer.toString(dp.getDayOfMonth()), 2, "0" ); String hour = StringUtils.leftPad( Integer.toString(tp.getCurrentHour()), 2, "0" ); String minutes = StringUtils.leftPad( Integer.toString(tp.getCurrentMinute()), 2, "0" ); String dateTime = year + "-" + month + "-" + day + "T" + hour + ":" + minutes + ":00.000"; return DateTime.parse(dateTime); }

Espero que ayude.

JP

Tengo un DatePicker y un TimePicker en mi aplicación. ¿Alguien puede decirme cómo obtener los valores de la fecha y hora que se seleccionan? Lo que quiero decir es que para EditText podemos declarar como

final EditText name = (EditText) this.findViewById(R.id.nametext);

y podemos convertir sus datos usando name.getText().toString() .

De manera similar, ¿cómo podemos obtener los valores de DatePicker y TimePicker en una cadena?


Combinó todas las respuestas e hizo un fragmento de código.

Importe datePicker en la parte superior de su clase:

import android.widget.DatePicker;

Dentro de tu clase declara la siguiente variable:

private DatePicker dobPicker;

Y aquí está el código para hacer en el evento de clic de botón:

dobPicker = (DatePicker)findViewById(R.id.dobPicker); Integer dobYear = dobPicker.getYear(); Integer dobMonth = dobPicker.getMonth(); Integer dobDate = dobPicker.getDayOfMonth(); StringBuilder sb=new StringBuilder(); sb.append(dobYear.toString()).append("-").append(dobMonth.toString()).append("-").append(dobDate.toString()).append(" 00:00:00"); String dobStr=sb.toString();

Donde en R.id.dobPicker, dobPicker es su datePicker en el archivo xml de diseño. Esto le da una cadena al final, que podría ser almacenada o enviada al servidor.


DatePicker tiene

getYear() getMonth() getDayOfMonth()

para hacer un objeto Date a partir de un DatePicker, harías una new Date(datePicker.getYear() - 1900, datePicker.getMonth(), datePicker.getDayOfMonth());

Tenga en cuenta que este constructor está en desuso en el nivel 1 de API ; consulte la respuesta de andrescanavesi para obtener una manera más adecuada de crear un objeto Date.

TimePicker tiene

getCurrentHour() getCurrentMinute()


Intente abajo con el Formato Ex: 24 de diciembre de 2014.

DatePicker datePicker = (DatePicker) findViewById(R.id.datepicker_inspection); SimpleDateFormat df = new SimpleDateFormat("dd MMMM yyyy"); String inspectiondate = df.format(new Date(datePicker.getYear() - 1900, datePicker.getMonth(), datePicker.getDayOfMonth()));


Lo haría como:

Calendar calendar = Calendar.getInstance(); calendar.set(dp.getYear(), dp.getMonth(), dp.getDayOfMonth(), Tp.getCurrentHour(), Tp.getCurrentMinute()); DateFormat gmtFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); TimeZone gmtTime = TimeZone.getTimeZone("GMT"); gmtFormat.setTimeZone(gmtTime); String mydate = ""+ gmtFormat.format(calendar.getTime());

ps dp y tp son recolectores de fecha y tiempo en Android.


Sugeriría mirar la clase DateFormat en Android. Tenga cuidado de importar el DateFormat mencionado en los documentos de Android. Después de eso, cualquier formato que quieras lograr es realmente simple. Para un 12 de agosto de 2012 básico puedes hacer esto.

DatePicker myDatePicker = (DatePicker) findViewById(R.id.mydatepicker); String selectedDate = DateFormat.getDateInstance().format(myDatePicker.getCalendarView().getDate());

Mira la clase DateFormat para obtener varias otras configuraciones.


Yo uso esto:

/** * * @param datePicker * @return a java.util.Date */ public static java.util.Date getDateFromDatePicket(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(); }


StringBuilder sb=new StringBuilder(); sb.append(myYear).append("-").append(myMonth).append("-").append(myDay); String str=sb.toString(); edittext.setText(str);


date=(EditText)findViewById(R.id.date_of_birth_textfield); date.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub showDialog(DATE_DIALOG_ID); } }); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); updateDisplay(); protected Dialog onCreateDialog(int id) { switch(id) { case DATE_DIALOG_ID: return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay); } return null } private DatePickerDialog.OnDateSetListener mDateSetListener= new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // TODO Auto-generated method stub System.out.println("calendar view shown.."+view.getCalendarViewShown()); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, monthOfYear); c.set(Calendar.DAY_OF_MONTH, dayOfMonth); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); updateDisplay(); // mMonth = monthOfYear; // mDay = dayOfMonth; } }; private void updateDisplay() { date.setText( new StringBuilder() // Month is 0 `based` so add 1 .append(mYear).append("-").append(mMonth + 1).append("-").append(mDay).append("")); //date.setText(fmtDateAndTime.format(c.getTime())); }