Mostrar fecha solamente y no hay tiempo en Android
Estoy intentando exhibir una fecha en androide con año, mes, y día elegidos usando un DatePicker. Lo que estoy teniendo problemas es tomar el año, el mes y el día elegido y mostrarlos en la pantalla en el formato correcto para la configuración regional del teléfono sin mostrar la hora.
El código en su estado actual mostrará la fecha correcta pero también mostrará la hora.
- ¿Por qué el año en curso en la fecha guardada como 3912?
- Cómo comparar la fecha del sistema con mydate en android 2.1?
- Android diferencia entre dos fechas en segundos
- Cambiar la fecha del sistema del teléfono de Android en el botón haga clic en la aplicación de Android
- Lengua ucraniana de Android
StringBuilder string = new StringBuilder() // Month is 0 based so add 1 .append(mYear).append("-") .append(mMonth + 1).append("-") .append(mDay); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = format.parse(string.toString()); mDateDisplay.setText(date.toLocaleString()); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); }
MDateDisplay es un TextView.
No puedo averiguar cómo deshacerse del tiempo que también se muestra. He hecho una buena cantidad de búsqueda y lectura de documentación y no pude entenderlo. Cualquier ayuda sería apreciada.
- Formato correcto de la fecha
- Obtener la hora y la fecha actuales en una escala de tiempo de 24 horas
- Android / Java - Fecha Diferencia en días
- Calcular la dirección de la luz solar de acuerdo con la hora actual y la posición en la tierra
- Cómo gestionar las fechas en la base de datos sqlite de Android cuando me preocupo sólo por la fecha (que es ser único) y no el tiempo?
- Comparar si dos fechas están dentro de la misma semana en android
- Cómo añadir días a la fecha en android
- Reloj de 24 horas no funciona en formato dateformat android
java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getContext()); mDateDisplay.setText(dateFormat.format(date))
Esto tendrá en cuenta la configuración regional de usuario y sólo mostrará la fecha.
Aquí está la documentación relevante: getDateFormat (Context context)
android.text.format.DateFormat df = new android.text.format.DateFormat(); df.format("yyyy-MM-dd", new java.util.Date());
o
android.text.format.DateFormat.format("yyyy-MM-dd", new java.util.Date());
Remitir este enlace
Actualizado ::
También puede usar formateador para obtener sólo la fecha como se indica a continuación:
mDateDisplay.setText(String.format("%1$tY %1$tb %1$td", date));
Paso horas en esto, finalmente una solución encontrada.
String datemillis = cursor.getString(cursor.getColumnIndex("field name on table")); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date date = null; date = df.parse(datemillis); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String shortTimeStr = sdf.format(date); System.out.println(shortTimeStr); Y=shortTimeStr; } catch (ParseException e) { // To change body of catch statement use File | Settings | File Templates. e.printStackTrace(); } Toast.makeText(getApplicationContext(),Y, Toast.LENGTH_LONG).show();
Esto funciona para mí:
public class MainActivity extends AppCompatActivity { TextView txt, txt1; Button click; Calendar c = Calendar.getInstance(); SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txt1 = (TextView) findViewById(R.id.txt1); click = (Button) findViewById(R.id.click); c.setTimeZone(TimeZone.getTimeZone("GMT")); click.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String f=df.format(c.getTime()); txt1.setText(f); } }); } }