A ver si alguien me puede ayudar, necesito una función en JAVA, que convierte un valor en segundos, como este, 19805, en formato como este 5h 30m 5s.
Alguien me puede decir como ?
| |||
Formateo especial para las horas A ver si alguien me puede ayudar, necesito una función en JAVA, que convierte un valor en segundos, como este, 19805, en formato como este 5h 30m 5s. Alguien me puede decir como ? |
| ||||
Respuesta: Formateo especial para las horas |
| |||
Respuesta: Formateo especial para las horas Muchas gracias, creo que para lo que necesito tendría que dejarlo de esta forma : System.out.println(String.format("%1$tHh %1$tMm %1$tSs", l)); De esta forma me lo muestra en formato 6h 56m 5s |
| |||
Respuesta: Formateo especial para las horas Perdona, pero he estado probando y no me funciona del todo. Te explico, desde una API concreta, me devuelve en segundos un tiempo, por ejemplo 8h, me lo devuelve un long con este valor : 28800. Yo necesito recuperar este valor y poder pintar en el formato especial que salga para este caso 8h. Si fuera el caso que el valor long es 30600, quiere decir que son 8h 30m. |
| |||
Respuesta: Formateo especial para las horas Perdona, pero he estado probando y no me funciona del todo. Te explico, desde una API concreta, me devuelve en segundos un tiempo, por ejemplo 8h, me lo devuelve un long con este valor : 28800. Yo necesito recuperar este valor y poder pintar en el formato especial que salga para este caso 8h. Si fuera el caso que el valor long es 30600, quiere decir que son 8h 30m. |
| ||||
Respuesta: Formateo especial para las horas Ooops ! Tienes razón, no leí correctamente lo de h-m-s. Aún así tenía duda que significa '19805'. Si fuera una cantidad de segundos transcurridos desde media noche, tendrías un problema con el TimeZone diferente que GMT+0. En ese caso tendrías que aplicar algo mas complejo como por ejemplo:
Código Java:
Saludos, Ver original |
| |||
Respuesta: Formateo especial para las horas Gracias HackmanC, creo que esto es lo que necesito, es que llevo unas horitas con este tema y de otros, a veces con mentes frescas pues ayuda fácilmente. Lo he probado con el ejemplo que puse de 19805, e efectivamente devuelve lo que necesito : 05h 30m 05s En el ejemplo de de 28800, devuelve 08h 00m 00s Ahora, y perdona por las molestias, si por ejemplo los segundos son 00 como en este caso, que se muestre 08h 00m, y si los minutos son 00m, pues que solamente se muestre 8h. Muchas gracias me salvas la vida laboralmente hablando |
| ||||
Respuesta: Formateo especial para las horas Hola, No sé si exista alguna forma para que Formatter se 'salte' alguna opción si esta es 0. Pero podrías implementar una validación previa, por ejemplo:
Código Java:
Ver original Saludos. |
| |||
Respuesta: Formateo especial para las horas Estoy utilizando en un principio la primera opcion : long seg = 28800 * 1000; java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("HH'h' mm'm' ss's'"); sdf.setTimeZone(java.util.TimeZone.getTimeZone("GM T")); System.out.println(sdf.format(seg)); Poniendo este método : private String generateDateToString(){ long seg = 28800 * 1000; java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("HH'h' mm'm' ss's'"); sdf.setTimeZone(java.util.TimeZone.getTimeZone("GM T")); System.out.println(sdf.format(seg)); } Y donde marco en negrita muesta un error : The method format(Date) in the type DateFormat is not applicable for the arguments (long) Que puede ser? |
| |||
Respuesta: Formateo especial para las horas Correcto, pasaba lo que comentas, tenía puesta el eclipse para compilar la version 1.4, la he cambiado a la 1.5 y funciona correctamente. Gracias de nuevo |