¿Cómo convertir el formato 24 horas en formato 12 h?
En mi aplicación quiero convertir el CDT dado formato de 24 hr en cadena CDT 12 hr string, ¿Cómo convertir una cadena de formato de 24 hr en 12 hr cadena de formato?
- IllegalArgumentException en unlockCanvasAndPost (fondo de pantalla en vivo Android)
- El archivo se guarda en UTF-8 pero símbolos extraños en lengua rusa
- No se puede realizar una vista bidireccional con 2 filas
- ¿Cómo crear un objeto con JNI?
- ¿Cómo diferenciar entre un fling y un toque?
- ¿Cómo detectar y gestionar la llamada entrante (Android)?
- Lectura de Android desde un flujo de entrada eficientemente
- ¿Cuál es la diferencia entre Thread.run () y Handler.post () y Service en Android?
- Lista de desplazamiento infinito de Android en ambas direcciones
- Error: Tiempo de espera esperando para bloquear caché de clase buildscript para el archivo de construcción cuando cambia minSdkVersion
- Cómo codificar una cadena para reemplazar todos los caracteres especiales
- Uso de la batería, ¿qué esperar?
- ¿Por qué DrawerLayout a veces falla al abrirse?
Puede intentar utilizar un objeto SimpleDateFormat
para convertir los formatos de hora.
final String time = "23:15"; try { final SimpleDateFormat sdf = new SimpleDateFormat("H:mm"); final Date dateObj = sdf.parse(time); System.out.println(dateObj); System.out.println(new SimpleDateFormat("K:mm").format(dateObj)); } catch (final ParseException e) { e.printStackTrace(); }
Aquí está el enlace javadoc para SimpleDateFromat.
Aquí está el código para convertir el tiempo de 24 horas a 12 horas con AM y PM. Si usted no quiere AM / PM entonces apenas substituya hh:mm a
con hh:mm
.
import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String [] args) throws Exception { try { String _24HourTime = "22:15"; SimpleDateFormat _24HourSDF = new SimpleDateFormat("HH:mm"); SimpleDateFormat _12HourSDF = new SimpleDateFormat("hh:mm a"); Date _24HourDt = _24HourSDF.parse(_24HourTime); System.out.println(_24HourDt); System.out.println(_12HourSDF.format(_24HourDt)); } catch (Exception e) { e.printStackTrace(); } } } //OUTPUT WILL BE //Thu Jan 01 22:15:00 IST 1970 //10:15 PM
Otra solución:
System.out.println(hr%12 + ":" + min + " " + ((hr>=12) ? "PM" : "AM"));
En Java 8 podría hacerse en una línea usando la clase java.time.LocalTime. Ejemplo de código:
String result = LocalTime.parse(time, DateTimeFormatter.ofPattern("HH:mm")).format(DateTimeFormatter.ofPattern("hh:mm a"));
int n=2; int result= n-12; if (result>o) { system.out.println(result+"pm"); } else { system.out.prinln(result+"am"); }
Usted puede utilizar el explorador si usted quiere toma la entrada del usuario Esperanza esto es simple 12 para el tiempo 🙂
En caso de que tenga curiosidad sobre la diferencia entre K, k y H, h:
H Hora en día (0-23) Número 0 1+
K Hora en día (1-24) Número 24 1+
K Hora en am / pm (0-11) Número 0 1+
H Hora en am / pm (1-12) Número 12 1+