¿Cómo puedo comprobar si el sistema es de 12 o 24 horas?
Estoy intentando determinar si la localización actual se fija a 12 o 24 horas, y fija am / pm según corresponda. Esto es lo que tengo ahora mismo, pero muestra am / pm todo el tiempo sin importar si se establece en 24.
if (DateFormat.is24HourFormat(this)) { mHour = mCalendar.get(Calendar.HOUR_OF_DAY); int hourOfDay = mHour; if (hourOfDay>12) views.setTextViewText(R.id.AMPM, "pm"); if (hourOfDay==12) views.setTextViewText(R.id.AMPM, "pm"); if (hourOfDay<12) views.setTextViewText(R.id.AMPM, "am"); } else { views.setTextViewText(R.id.AMPM, ""); }
- Hora del formato de la clase de tiempo de Android
- Android startService () tarda mucho tiempo en volver al subproceso de interfaz de usuario
- ¿Cómo obtener la hora actual de Google para Android?
- ¿Cómo se muestra correctamente la posición / duración de un MediaPlayer?
- Acelerar el tiempo del emulador de Android
- Androide; Msgstr "Se ha agotado el tiempo de envío de claves ..."
- Dibuja línea personalizada entre dos elementos en TableLayout Android
- Android 4.0 org.apache.http.conn.ConnectTimeoutException: Conectarse a ... agotado el tiempo de espera
- ¿Cómo cambiar el retraso del hilo de sueño / temporizador en android durante el tiempo de ejecución?
- Static static String definida en una interfaz no evaluada en tiempo de compilación - Android
- SoundPool de Android tartamudea, retrasa, a veces no juega en absoluto
- ¿Cómo cambiar el nombre de la aplicación de Android y el icono en tiempo de ejecución?
- Cómo dar formato al tiempo no fecha en Android o Java?
¿No debería ser
if (!DateFormat.is24HourFormat(this))
¿Desea asignar am / pm sólo cuando no está configurado en formato de 24 horas, correcto?
Esta es una versión más compacta:
if (!DateFormat.is24HourFormat(this)) { mHour = mCalendar.get(Calendar.HOUR_OF_DAY); int hourOfDay = mHour; if (hourOfDay >= 12) { views.setTextViewText(R.id.AMPM, "pm"); } else { views.setTextViewText(R.id.AMPM, "am"); } } else { views.setTextViewText(R.id.AMPM, ""); }
Mejor solución y muestra de código completo:
Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); // below, the "hour" and "min" are variables,to which you want to set calendar.For example you can take this values from time picker calendar.set(Calendar.HOUR_OF_DAY, hour); calendar.set(Calendar.MINUTE, min); android.text.format.DateFormat dateFormat = new android.text.format.DateFormat(); is24HourFormat= dateFormat.is24HourFormat(this); if (is24HourFormat) { // if system uses 24hourformat dateFormat will format the calender time according to 24hourformat. "HH" means 24hourformat CharSequence setTime = dateFormat.format("HH:mm", calendar); } else { // if system doesnt use 24hourformat dateFormat will format the calender time according to 12hourformat. "hh" means 12hourformat and "a" will show am/pm marker CharSequence setTime = dateFormat.format("hh:mm a", calendar); }
Para mostrar siempre AM/PM
en formato de 12 horas y no algo como vorm/nachm
en alemán, utilice Locale.US
para el formato de fecha:
/** * Returns the time in a localized format. The 12-hours format is always displayed with * AM/PM (and not for example vorm/nachm in german). * * @param context the context * @return Localized time (15:24 or 3:24 PM). */ public static String getTime(Context context, long time) { if (android.text.format.DateFormat.is24HourFormat(context)) { return new SimpleDateFormat("HH:mm", Locale.US).format(new Date(time)); } else { return new SimpleDateFormat("hh:mm a", Locale.US).format(new Date(time)); } }
- Single page PreferenceActivity w / sin encabezados / fragmentos?
- Amplíe y dé enfoque a SearchView automáticamente