Android: ¿Cómo cambiar el formato de fecha de vista de DatePicker de MM / dd / aaaa a dd / MM / aaaa?

He estado tratando de obtener una respuesta a esta pregunta durante bastante tiempo. También he echado un vistazo al siguiente enlace: Android – DatePicker Widget Format . En mi teléfono / emulador (v 2.3.3) tanto el widget DatePicker como el diálogo no toman el formato de fecha especificado en la configuración (Ajustes-> Fecha y Hora-> Seleccionar formato de fecha). Están siempre en el formato "MM / dd / aaaa". La configuración regional se establece en inglés UK.

Recibo "d / MM / aaaa" cuando leo la configuración con:

Settings.System.getString(getContentResolver(), Settings.System.DATE_FORMAT);

¿Alguien tiene una idea acerca de cómo cambiar el formato de fecha en una vista de DatePicker?

Para anular el formato DatePicker la mejor opción sería reemplazar uno de sus constructores con una ligera edición en el código original. Usted puede editar el ViewGroup en el código para usted pero consideraría seriamente no hacerlo de esa manera.

  1. Crear clase LocalizedDatePicker
  2. Anula public DatePicker (Context context, AttributeSet attrs, int defStyle) http://developer.android.com/reference/android/widget/DatePicker.html#DatePicker(android.content.Context , android.util.AttributeSet, int)
  3. Copiar el código del constructor DatePicker original (puede que necesite seleccionar una rama diferente después de algunas pruebas, he vinculado la cabeza)
  4. Anule los métodos que llaman reorderSpinners () para quitar esa llamada.
  5. Reemplace la línea inflater.inflate(R.layout.date_picker, this, true); Con inflater.inflate(my.package.R.layout.localized_date_picker, this, true);
  6. Copie el diseño original date_picker.xml en su recurso local localized_date_picker.xml
  7. Edite el archivo para el orden deseado, ya que está editando esto respete la localización de otros lugares y guarde una copia del original en su carpeta de diseño global y coloque localized_date_picker.xml en su carpeta específica de región. Dado que el diseño del sistema es el Día del Mes Día, las personas en otros lugares pueden esperar ese pedido.

Ese escenario es muy específico. Sólo se aplica a fechas que se muestran en "formato corto". Mientras utilices cualquier otra cosa (en este caso, DatePicker parece estar usando "medium"), entonces esos ajustes no se tendrán en cuenta y el formato predeterminado de Locale se hará cargo.

Puedo confirmar que si cambia el idioma de su teléfono (y, efectivamente, el idioma local), el orden de los elementos cambia en el selector de fechas. Lo cual supongo que estoy en desacuerdo con la afirmación de Dan S de que "el sistema no usa ningún mecanismo para localizar el DatePicker". Si miras el código, puedes ver que (al menos desde 2.1), hay un método reorderPickers () que hace exactamente esto.

Inglés: Inglés

Francés: francés

  • Cómo buscar una fecha de un datepicker en NativeScript
  • Diálogo de divisor Android
  • Desactivar fechas futuras en el selector de fechas de Android
  • Cómo mostrar la fecha seleccionada en EditText utilizando DialogFragment
  • Problema de compatibilidad de Android DatePicker con la biblioteca MonkeyTalk
  • Tipo de letra para Android DatePicker
  • Cómo cambiar los colores "Dividers" de Dialog de DatePicker de Android
  • ¿Podemos mostrar el estilo de lollipop DatePicker en los dispositivos kitkat?
  • DatePicker no funciona al intentar utilizarlo
  • Cómo inhabilitar ciertas fechas en el cuadro de diálogo Selector de fecha de Android?
  • Diseño de material Android Inline Datepicker issue
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.