¿Cómo obtendría una cadena de fecha corta basada en la configuración regional para Android?

Estoy tratando de obtener una cadena de fecha con la forma abreviada del día de la semana y el mes, además del día del mes.

Por ejemplo, un usuario con un idioma inglés vería:

Mar 17 jun

y un usuario con una localización alemana vería:

Di 17 juni

He estado buscando en los documentos android.text.format.DateFormat y el getBestDateTimePattern(Locale locale, String skeleton) parecía que podría funcionar, pero requiere API 18+, así que no puedo usarlo.

¿Hay una manera de obtener este tipo de formato corto que se basa en la configuración actual del usuario?

Bueno, creo que finalmente averiguó esto:

 int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NO_YEAR | DateUtils.FORMAT_ABBREV_ALL | DateUtils.FORMAT_SHOW_WEEKDAY; dateTextView.setText(DateUtils.formatDateTime(this, millis, flags)); 

Para una localidad en inglés, obtendrá:

Miércoles, 18 de junio

y para una localidad alemana, obtendrá:

Mi., 18. Juni

y para una localidad francesa, obtendrá:

mer. 18 de junio

Debe utilizar getMeduimDateFormat(Context) , esto obedece a la configuración regional actual ya las preferencias del usuario.

intente debajo del código: –

 public class DateFormatDemoSO { public static void main(String args[]) { int style = DateFormat.MEDIUM; //Also try with style = DateFormat.FULL and DateFormat.SHORT Date date = new Date(); DateFormat df; df = DateFormat.getDateInstance(style, Locale.UK); System.out.println("United Kingdom: " + df.format(date)); df = DateFormat.getDateInstance(style, Locale.US); System.out.println("USA: " + df.format(date)); df = DateFormat.getDateInstance(style, Locale.FRANCE); System.out.println("France: " + df.format(date)); df = DateFormat.getDateInstance(style, Locale.ITALY); System.out.println("Italy: " + df.format(date)); df = DateFormat.getDateInstance(style, Locale.JAPAN); System.out.println("Japan: " + df.format(date)); } } 

para más información vea el siguiente enlace: –

http://www.java2s.com/Code/Java/Data-Type/DateFormatwithLocale.htm

Joda-Time

Utilice la biblioteca Joda-Time .

 DateTimeFormatter formatter = DateTimeFormat.forStyle( "S-" ).withLocale( java.util.Locale.getDefault() ); // "S" for short date format. "-" to suppress the time portion. Specify locale for cultural rules about how to format a String representation. DateTime dateTime = new DateTime( someDateObject, DateTimeZone.getDefault() ); // Convert a java.util.Date object to an org.joda.time.DateTime object. Specify time zone to assign to DateTime. String output = formatter.print( dateTime ); // Generate String representation of date-time value. 
  • Cómo formatear un valor de flotador con el formato de moneda del dispositivo?
  • Mostrar fecha en la ubicación actual
  • ¿De dónde viene la ubicación y la ubicación actual de Bestest? En Android Dev Guide (Obtención de la ubicación del usuario)
  • ¿Cómo obtener el idioma (configuración regional) que muestra actualmente la aplicación para Android?
  • Símbolo de moneda regional
  • CyanogenMod: traducir un proyecto
  • Lengua ucraniana de Android
  • Cambio de locale: ¿Forzar la actividad a recargar recursos?
  • ¿Por qué podría Resources.getString () devolver intermitentemente cadenas de la configuración regional equivocada?
  • Android cambia y establece la configuración regional predeterminada dentro de la aplicación
  • Localización de Android y menú
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.