He estado tratando de obtener una respuesta a esta pregunta durante bastante tiempo. También eché 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 (Configuración-> Fecha y hora-> Seleccionar formato de fecha). Siempre están en el formato “MM / dd / aaaa”. La configuración regional está configurada en inglés del Reino Unido.
Obtengo “d / MM / aaaa” cuando leo la configuración con:
Settings.System.getString(getContentResolver(), Settings.System.DATE_FORMAT);
¿Alguien tiene una idea sobre cómo cambiar el formato de fecha en una vista de DatePicker?
Para anular el formato DatePicker la mejor opción sería anular uno de sus constructores con una ligera modificación del código original. Puede editar ViewGroup en el código para usted, pero consideraría seriamente no hacerlo de esa manera.
inflater.inflate(R.layout.date_picker, this, true);
con inflater.inflate(my.package.R.layout.localized_date_picker, this, true);
Esa configuración es muy específica. Solo se aplica a las fechas de fechas que se muestran en “formato corto”. Siempre y cuando esté utilizando cualquier otra cosa (en este caso, el DatePicker parece estar usando “medio”), entonces esa configuración se descartará y el formato predeterminado de la configuración regional se hará cargo.
Puedo confirmar que si cambia el idioma de su teléfono (y, de hecho, la configuración regional) el orden de los elementos cambia en el selector de fecha. Lo que supongo significa que no estoy de acuerdo 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 eso (al menos desde 2.1), hay un método reorderPickers () que hace exactamente esto.
Inglés:
Francés: