Cómo obtener el valor datepicker en formato de fecha?
Tengo un problema con mi Datapicker
Utilizo el código para obtener la fecha, mes y año que se muestra a continuación
- Comience y finalice la semana en Android
- Cómo construir una fecha de una cadena
- SQLite selecciona todos los registros de hoy y día anterior
- Diferencia de Android entre dos fechas
- Analizar excepciones en Android
DatePicker datePicker; datePicker = (DatePicker) findViewById(R.id.dateselect); int day = datePicker.getDayOfMonth(); int month= datePicker.getMonth() + 1; int year = datePicker.getYear();
Pero cuando imprimo la fecha que muestra el valor 7 no 07 y para el mes que muestra el valor 2 no 02
Quiero estos datos enteros en un formato de fecha es decir; Por ejemplo: 02-02-2013, 24-12-2013
¿Hay alguna manera posible ????
- Leer WCF REST fecha de android
- ¿Por qué "Date d = new Date ();" devuelve un error?
- ¿Cómo puedo obtener la diferencia entre dos fechas en android ?, intentado todo y publicar
- La fecha y hora muestran datos erróneos
- Cómo obtener fechas de la base de datos y comprobar si se solapan?
- Java convertir la marca de tiempo UTC a DateTime local
- Guardando y recuperando la fecha en Firebase
- Java último día del problema del mes
public String checkDigit(int number) { return number<=9?"0"+number:String.valueOf(number); }
Uso básico:
month=checkDigit(month); input 7 output 07 String date=checkDigit(monthOfYear+1)+"/"+checkDigit(dayOfMonth)+"/"+year;
Puede formatear la fecha de la siguiente manera:
int day = datePicker.getDayOfMonth(); int month= datePicker.getMonth(); int year = datePicker.getYear(); SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); String formatedDate = sdf.format(new Date(year, month, day));
Puede analizar el objeto String back to Date llamando al
Date date = sdf.parse(formatedDate);
<?xml version="1.0" encoding="utf-8"?>
<Button android:id="@+id/btnChangeDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Change Date" /> <TextView android:id="@+id/lblDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Current Date (MD-YYYY): " android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/tvDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:textAppearance="?android:attr/textAppearanceLarge" /> <DatePicker android:id="@+id/dpResult" android:layout_width="wrap_content" android:layout_height="wrap_content" />
package com.mkyong.android; import java.util.Calendar; import android.app.Activity; import android.app.DatePickerDialog; import android.app.Dialog; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.DatePicker; impot android.widget.TextView; public class MyAndroidAppActivity extends Activity { private TextView tvDisplayDate; private DatePicker dpResult; private Button btnChangeDate; private int year; private int month; private int day; static final int DATE_DIALOG_ID = 999; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setCurrentDateOnView(); addListenerOnButton(); } // display current date public void setCurrentDateOnView() { tvDisplayDate = (TextView) findViewById(R.id.tvDate); dpResult = (DatePicker) findViewById(R.id.dpResult); final Calendar c = Calendar.getInstance(); year = c.get(Calendar.YEAR); month = c.get(Calendar.MONTH); day = c.get(Calendar.DAY_OF_MONTH); // set current date into textview tvDisplayDate.setText(new StringBuilder() // Month is 0 based, just add 1 .append(month + 1).append("-").append(day).append("-") .append(year).append(" ")); // set current date into datepicker dpResult.init(year, month, day, null); } public void addListenerOnButton() { btnChangeDate = (Button) findViewById(R.id.btnChangeDate); btnChangeDate.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { showDialog(DATE_DIALOG_ID); } }); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case DATE_DIALOG_ID: // set date picker as current date return new DatePickerDialog(this, datePickerListener, year, month,day); } return null; } 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; // set selected date into textview tvDisplayDate.setText(new StringBuilder().append(month + 1) .append("-").append(day).append("-").append(year) .append(" ")); // set selected date into datepicker also dpResult.init(year, month, day, null); } };
}
A partir de API nivel 12 , DatePicker
tiene public CalendarView getCalendarView ()
, utilizando esta vista puede obtener la fecha:
long dateTime = datePicker.getCalendarView().getDate(); Date date = new Date(dateTime);
Luego formatee si es necesario:
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); String formattedDate = dateFormat.format(date);
Puede utilizar un método personalizado para establecer la fecha y el mes en el formato deseado
private static String pad(int c) { return c>=10 ? ""+c : "0"+c; }
En lugar de utilizar los valores de fecha y mes use pad(date)
y pad(month)
Espero que esto ayude.
- Android SearchView en la barra de herramientas
- Ejecutar una aplicación de Android en Eclipse causa NullPointerException