print only now from and java date hour seconds minute

only - Java getHours(), getMinutes() y getSeconds()



java get hour and minute from date (3)

Java 8

System.out.println(LocalDateTime.now().getHour()); // 7 System.out.println(LocalDateTime.now().getMinute()); // 45 System.out.println(LocalDateTime.now().getSecond()); // 32

Calendario

System.out.println(Calendar.getInstance().get(Calendar.HOUR_OF_DAY)); // 7 System.out.println(Calendar.getInstance().get(Calendar.MINUTE)); // 45 System.out.println(Calendar.getInstance().get(Calendar.SECOND)); // 32

Joda Time

System.out.println(new DateTime().getHourOfDay()); // 7 System.out.println(new DateTime().getMinuteOfHour()); // 45 System.out.println(new DateTime().getSecondOfMinute()); // 32

Formateado

Java 8

// 07:48:55.056 System.out.println(ZonedDateTime.now().format(DateTimeFormatter.ISO_LOCAL_TIME)); // 7:48:55 System.out.println(LocalTime.now().getHour() + ":" + LocalTime.now().getMinute() + ":" + LocalTime.now().getSecond()); // 07:48:55 System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime())); // 074855 System.out.println(new SimpleDateFormat("HHmmss").format(Calendar.getInstance().getTime())); // 07:48:55 System.out.println(new Date().toString().substring(11, 20));

Como sé, getHours() , getMinutes() y getSeconds() están en desuso en Java y se reemplazan por Calendar.HOUR_OF_DAY , Calendar.MINUTE , Calendar.SECOND .

De hecho, estos devolverán la hora, el minuto y el segundo para ese momento en particular. Sin embargo, me gustaría recuperar las horas y los minutos de una variable de fecha. Por ejemplo,

decir que el tiempo recuperado de la base de datos es

time = Thu Jan 01 09:12:18 CET 1970; int hours = time.getHours(); int minutes = time.getMinutes(); int seconds = time.getSeconds();

Al recuperar las horas, minutos y segundos, obtengo

hours = 9 minutes = 12 seconds = 18

Entonces, ¿cómo uso Calendar para esta función? Aunque el getHours() ha quedado en desuso, pero todavía funcionaba. Me gustaría saber si hay una alternativa a esto.


Para una diferencia horaria, tenga en cuenta que el calendario comienza en 01.01.1970, 01:00, no a las 00:00. Si está usando java.util.Date y java.text.SimpleDateFormat, tendrá que compensar por 1 hora:

long start = System.currentTimeMillis(); long end = start + (1*3600 + 23*60 + 45) * 1000 + 678; // 1 h 23 min 45.678 s Date timeDiff = new Date(end - start - 3600000); // compensate for 1h in millis SimpleDateFormat timeFormat = new SimpleDateFormat("H:mm:ss.SSS"); System.out.println("Duration: " + timeFormat.format(timeDiff));

Esto se imprimirá:

Duración: 1: 23: 45.678


Prueba esto:

Calendar calendar = Calendar.getInstance(); calendar.setTime(yourdate); int hours = calendar.get(Calendar.HOUR_OF_DAY); int minutes = calendar.get(Calendar.MINUTE); int seconds = calendar.get(Calendar.SECOND);