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:
- Cómo obtener el valor datepicker en formato de fecha?
- Desactivar fechas específicas del día en el selector de fechas de Android
- JQuery Data Time selector que funciona bien en iOS / Android
- Convertir la fecha y la hora en milisegundos en Android
- ¿Cómo alimentar el widget de DatePicker con otros sistemas de calendario?
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?
- Datepicker y timepicker - establece valores máximos y mínimos en android
- Cuadro de diálogo selector de fecha en editar texto haga doble clic
- Visualización de un DatePicker con o sin el campo del año
- Cómo deshabilitar fechas futuras en el selector de fechas de Android
- El nombre del mes aparece con el número M + en el cuadro de diálogo datePicker en android
- Android DatePicker muestra meses no disponibles cuando se usan límites min / max
- Ios como el selector de fecha / hora para la plataforma android
- Incorporar datepicker dentro de un Acitivity
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.
- Crear clase LocalizedDatePicker
- 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)
- Copiar el código del constructor DatePicker original (puede que necesite seleccionar una rama diferente después de algunas pruebas, he vinculado la cabeza)
- Anule los métodos que llaman reorderSpinners () para quitar esa llamada.
- Reemplace la línea
inflater.inflate(R.layout.date_picker, this, true);
Coninflater.inflate(my.package.R.layout.localized_date_picker, this, true);
- Copie el diseño original date_picker.xml en su recurso local localized_date_picker.xml
- 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:
Francés:
- ¿Puede un widget de casa tener un Contexto?
- Personalización de SeekBar – cómo colocar correctamente la imagen "pulgar" personalizada?