miércoles, 23 de octubre de 2019

Trabajando con JavaTime - LocalTime

La clase "LocalDate" que fue añadida en la versión 1.7 del JDK es de alguna manera la nueva forma como podemos manipular fechas en JAVA en lugar de emplear la clase "Date" de "java.util"

Veamos los siguientes ejemplos:

package test;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class Horas {

    public static void main(String[] args) {
        //Capturando la hora actual
        LocalTime horaHoy = LocalTime.now();
        System.out.println("Hora actual: " + horaHoy.toString());

        //Ingresando la hora, minutos, segundos y nanosegundos.
        LocalTime horaDeInt = LocalTime.of(21, 11, 30, 0);
        System.out.println("Hora desde ints: " + horaDeInt.toString());

        //Ingresando hora desde un String, usando formato hora, minutos y segundos.
        LocalTime horaDeString = LocalTime.parse("21:11:30");
        System.out.println("Hora con formato por defecto: " + horaDeString.toString());

        //Ingresando hora desde un String que tiene formato: Horas y minutos
        DateTimeFormatter formato = DateTimeFormatter.ofPattern("HH:mm");
        LocalTime horaConFormato = LocalTime.parse("21:11", formato);
        System.out.println("Hora con formato 24 horas: " + horaConFormato.toString());
        //Si queremos retornar en un String con formato AM y PM
        DateTimeFormatter formatoAM_PM = DateTimeFormatter.ofPattern("hh:mm a");
        String horaCorta = horaConFormato.format(formatoAM_PM);
        System.out.println("Hora con formato AM - PM: " + horaCorta);
        //Extrayendo los datos individualmente
        System.out.println("Fecha con formato largo: "
                + horaConFormato.getHour() + " horas "
                + horaConFormato.getMinute() + " minutos "
                + horaConFormato.getSecond() + " segundos");
    }

}

    }
    
}

Nos producirá una salida similar a esta:
Hora actual: 12:21:39.183
Hora desde ints: 21:11:30
Hora con formato por defecto: 21:11:30
Hora con formato 24 horas: 21:11
Hora con formato AM - PM: 09:11 PM
Fecha con formato largo: 21 horas 11 minutos 0 segundos


  • Por defecto se usa el formato HH-mm-ss
  • Si se desea cambiar ese formato para ingresar el String, se emplea un "DateTimeFormatter" donde se indica la forma como llegará el String al LocalTime. 

Observa la siguiente tabla comparativa de los diversos formatos en fechas:


Formato Salida
HH:mm:ss 21:30:15
hh:mm:ss 09:30:15
hh:mm:ss a 09:30:15 AM
HH:mm 21:30
HH:mm:ss.SSS 21:30:15.000

Se empla "H" para formato de horas de 1 a 23, "h" para formato de 1 a 12, la "m" para los minutos, "s" para los segundos, "S" para fracciones de segundo en este caso puede ser: "S", "SS" o "SSS". Además, si queremos agregar AM o PM se agrega "a"

No hay comentarios:

Publicar un comentario