Quiero mostrar la fecha de nacimiento según la configuración regional del usuario. En mi aplicación, uno de mis campos es la fecha de nacimiento, que actualmente está en el formato dd/mm/aaaa. Por lo tanto, si el usuario cambia su configuración regional, el formato de fecha también debería cambiar en consecuencia. Cualquier puntero o ejemplos de código realmente me ayudaría a superar el problema.Formato de fecha según la configuración regional del usuario en android
Respuesta
Puede utilizar la clase DateFormat que formatea una fecha según la configuración regional del usuario.
Ejemplo:
String dateOfBirth = "26/02/1974";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date date = null;
try {
date = sdf.parse(dateOfBirth);
} catch (ParseException e) {
// handle exception here !
}
java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);
String s = dateFormat.format(date);
Usted puede utilizar los diferentes métodos getLongDateFormat
, getMediumDateFormat
dependiendo del nivel de verbosidad que le gustaría tener.
Para cambiar el formato de fecha en función de la configuración regional, el siguiente código trabajó para mí:
String dateOfBirth = "26/02/1974";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date date = null;
try {
date = sdf.parse(dateOfBirth);
} catch (ParseException e) {
// handle exception here !
}
String myString = DateFormat.getDateInstance(DateFormat.SHORT).format(date);
Luego, cuando se cambia la configuración regional, el formato de fecha cambiará en función de ello. Para obtener más información acerca de los patrones de fechas: http://docs.oracle.com/javase/tutorial/i18n/format/dateFormat.html
El enlace que proporcionó es útil para mí. Gracias –
mismo aquí! gracias ! –
api de Android proporcionan una manera fácil de mostrar el formato de fecha localizada. El siguiente código funciona.
public class FileDateUtil {
public static String getModifiedDate(long modified) {
return getModifiedDate(Locale.getDefault(), modified);
}
public static String getModifiedDate(Locale locale, long modified) {
SimpleDateFormat dateFormat = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
dateFormat = new SimpleDateFormat(getDateFormat(locale));
} else {
dateFormat = new SimpleDateFormat("MMM/dd/yyyy hh:mm:ss aa");
}
return dateFormat.format(new Date(modified));
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static String getDateFormat(Locale locale) {
return DateFormat.getBestDateTimePattern(locale, "MM/dd/yyyy hh:mm:ss aa");
}
}
Puede verificar el siguiente código.
String koreaData = FileDateUtil.getModifiedDate(Locale.KOREA, System.currentTimeMillis());
String franceData = FileDateUtil.getModifiedDate(Locale.FRENCH, System.currentTimeMillis());
String defaultData = FileDateUtil.getModifiedDate(Locale.getDefault(), System.currentTimeMillis());
String result = "Korea : " + koreaData + System.getProperty("line.separator");
result += "France : " + franceData + System.getProperty("line.separator");
result += "Default : " + defaultData + System.getProperty("line.separator");
tv.setText(result);
Tan simple como
Por fecha + hora:
DateFormat format = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.SHORT, Locale.getDefault());
Por tan sólo la fecha:
DateFormat format = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
Solo para corregir el error de copiar y pegar: Para la fecha sin tiempo, llame a getDateInstance (no getDateTimeInstance) – Lensflare
- 1. Mostrar fecha y hora en la configuración regional del usuario
- 2. Formato de fecha Java para configuración regional
- 3. Fecha y hora de formato según la zona
- 4. cambiar la configuración regional de la fecha
- 5. Formato de fecha de configuración regional en Python
- 6. Formateo de direcciones basado en la configuración regional en android
- 7. Configuración regional en Android
- 8. ¿Cómo formatear las fechas según la configuración regional?
- 9. ¿Cómo formateo la fecha actual de la configuración regional del usuario?
- 10. PHP: formato de número de configuración regional
- 11. fecha de visualización del iPhone utilizando una configuración regional de usuario, pero en otro idioma
- 12. Configuración del formato de la celda de fecha en excel xml
- 13. ¿La aplicación de Android puede tener un nombre diferente según la configuración regional/operador?
- 14. La mejor manera de determinar la configuración regional del usuario dentro del navegador
- 15. Cambiar la configuración regional del emulador Android automáticamente
- 16. ¿Forzar Android DateUtils.getRelativeDateTimeString() para ignorar la configuración regional del dispositivo?
- 17. Java: el formato de flotación depende de la configuración regional
- 18. Obtener la cadena de la configuración regional predeterminada mediante una cadena en la configuración regional específica
- 19. Cómo puedo configurar el formato de fecha y hora en Java que respeta la configuración del sistema operativo del usuario
- 20. Cómo obtener el patrón de fecha de la zona horaria de la configuración regional en Java
- 21. Cambiar la configuración de idioma (configuración regional) para el dispositivo
- 22. La configuración regional no existe en Java
- 23. ¿Cómo obtener la configuración regional del idioma del usuario en Objective-C?
- 24. Configuración de la configuración regional de Java
- 25. iOS: ¿Muestra la hora en formato de 24 horas si la configuración regional es adecuada?
- 26. ¿Cómo puedo modificar la configuración regional predeterminada en android?
- 27. Configuración regional del navegador en Playframework
- 28. Android: Cambiando el formato de hora según el formato de hora actual del dispositivo
- 29. ¿Depende de la configuración regional SimpleDateFormat?
- 30. String.Format considere la configuración regional o no?
"DateFormat dateFormat" realmente debería escribirse "java.text.DateFormat formato de fecha". Hay diferentes versiones de DateFormat de varias bibliotecas. – AndroidDev
Al mirar el código fuente, 'android.text.format.DateFormat.getDateFormat (context)' simplemente devuelve 'java.text.DateFormat.getDateInstance (java.text.DateFormat.SHORT)'. De hecho, el argumento 'context' ni siquiera se usa. Creo que prefiero usar 'java.text.DateFormat.getDateInstance (DateFormat.SHORT)' directamente. –
No tengo fecha de entrada en tipo de cadena, tengo Fecha como entrada – user924