La clase Java LocalDateTime es una clase inmutable que representa la fecha y la hora sin la información de la zona horaria, por ejemplo, 2017-10-25T11: 20: 55. En esta guía veremos los métodos de la clase LocalDateTime y escribiremos algunos programas java. para entender su uso.
Comencemos con un ejemplo simple de LocalDateTime.
1. Ejemplo simple de LocalDateTime en Java
En este ejemplo, estamos mostrando la fecha y hora actuales usando la clase LocalDateTime. También podemos formatear la salida de fecha y hora usando la clase DateTimeFormatter que hemos mostrado en el siguiente ejemplo.
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Example { public static void main(String[] args) { //getting current date and time using now() method LocalDateTime currentDateTime = LocalDateTime.now(); System.out.println("Current Date and Time: "+currentDateTime); //lets see how we can display the current date time in different format DateTimeFormatter format = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm a"); String newFormat = currentDateTime.format(format); System.out.println("Current Date Time in specified format: "+newFormat); } }
Producción:
Current Date and Time: 2017-10-31T13:57:06.290 Current Date Time in specified format: 31/10/2017 13:57 PM
2. Java – Ejemplo del método LocalDateTime of ()
Podemos crear una instancia de LocalDateTime a partir de la información de fecha y hora dada utilizando el método of () de la clase LocalDateTime.
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Example { public static void main(String[] args) { /* given date time info is passed in of() method * the sequence of parameters are: Year, Month, Day, Hour * , Minutes, Seconds, NanoSeconds */ LocalDateTime localDateTime = LocalDateTime.of(2017, 10, 21, 11, 32, 55, 678); System.out.println("Given Date Time in default format: "+localDateTime); //formatting the output DateTimeFormatter format = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm a"); String newFormat = localDateTime.format(format); System.out.println("Given Date Time in new format: "+newFormat); } }
Producción:
Given Date Time in default format: 2017-10-21T11:32:55.000000678 Given Date Time in new format: 21/10/2017 11:32 AM
3. Java – Ejemplo de métodos de obtención de LocalDateTime
Hay varios métodos de obtención en esta clase. Primero veremos una breve descripción de estos métodos y luego tomaremos un ejemplo para comprender cómo funcionan.
int getYear () – Año de devoluciones
int getDayOfYear () – Devuelve el día del año como un número entero, de 1 a 365 o 366 en un año bisiesto.
Mes getMonth () – Mes de devoluciones.
int getDayOfMonth () – Devuelve el día del mes como un número entero, de 1 a 31.
DayOfWeek getDayOfWeek () – Devuelve el día de la semana.
int getHour () – Devuelve la hora del día, de 0 a 23
int getMinute () – Devuelve los minutos de la hora, de 0 a 59
int getSecond () – Devuelve los segundos del minuto, de 0 a 59
int getNano () – Devuelve nanosegundos, de 0 a 999,999,999
import java.time.LocalDateTime; public class Example { public static void main(String[] args) { /* given date time info is passed in of() method * the sequence of parameters are: Year, Month, Day, Hour * , Minutes, Seconds, NanoSeconds */ LocalDateTime localDateTime = LocalDateTime.of(2017, 10, 21, 11, 32, 55, 678); System.out.println("Given Date Time: "+localDateTime); System.out.println("getYear(): "+localDateTime.getYear()); System.out.println("getDayOfYear(): "+localDateTime.getDayOfYear()); System.out.println("getMonth(): "+localDateTime.getMonth()); System.out.println("getDayOfMonth(): "+localDateTime.getDayOfMonth()); System.out.println("getDayOfWeek(): "+localDateTime.getDayOfWeek()); System.out.println("getHour(): "+localDateTime.getHour()); System.out.println("getMinute(): "+localDateTime.getMinute()); System.out.println("getSecond(): "+localDateTime.getSecond()); System.out.println("getNano(): "+localDateTime.getNano()); } }
Producción:
Given Date Time: 2017-10-21T11:32:55.000000678 getYear(): 2017 getDayOfYear(): 294 getMonth(): OCTOBER getDayOfMonth(): 21 getDayOfWeek(): SATURDAY getHour(): 11 getMinute(): 32 getSecond(): 55 getNano(): 678
4. Java – Métodos LocalDateTime plus
plusYears () – Devuelve la copia de este LocalDateTime con los años especificados agregados.
plusMonths () – Devuelve la copia de este LocalDateTime con los meses especificados agregados.
plusDays () – Devuelve la copia de este LocalDateTime con los días especificados agregados.
plusHours () – Devuelve la copia de este LocalDateTime con las horas especificadas agregadas.
plusMinutes () – Devuelve la copia de este LocalDateTime con los minutos especificados agregados.
plusSeconds () – Devuelve la copia de este LocalDateTime con los segundos especificados agregados.
plusNanos () – Devuelve la copia de este LocalDateTime con los nanosegundos especificados agregados.
import java.time.LocalDateTime; public class Example { public static void main(String[] args) { LocalDateTime localDateTime = LocalDateTime.now(); System.out.println("Current Date Time: "+localDateTime); System.out.println("Added 2 Years: "+localDateTime.plusYears(2)); System.out.println("Added 1 Month: "+localDateTime.plusMonths(1)); System.out.println("Added 5 Days: "+localDateTime.plusDays(5)); System.out.println("Added 7 Hours: "+localDateTime.plusHours(7)); System.out.println("Added 15 Minutes: "+localDateTime.plusMinutes(15)); System.out.println("Added 10 Seconds: "+localDateTime.plusSeconds(10)); System.out.println("Added 1000 nano Seconds: "+localDateTime.plusNanos(1000)); } }
Producción:
Current Date Time: 2017-10-31T14:24:23.233 Added 2 Years: 2019-10-31T14:24:23.233 Added 1 Month: 2017-11-30T14:24:23.233 Added 5 Days: 2017-11-05T14:24:23.233 Added 7 Hours: 2017-10-31T21:24:23.233 Added 15 Minutes: 2017-10-31T14:39:23.233 Added 10 Seconds: 2017-10-31T14:24:33.233 Added 1000 nano Seconds: 2017-10-31T14:24:23.233001
5. Cálculo de Java LocalDateTime utilizando métodos menos
Estos métodos devuelven una copia modificada de LocalDateTime restando la cantidad especificada por LocalDateTime. Esto significa que la instancia de LocalDateTime real no se cambia, pero se devuelve una nueva copia con el valor modificado.
menos años ()
menos meses ()
minusDays ()
minusHours ()
minusMinutes ()
menos segundos ()
lessNanos ()
import java.time.LocalDateTime; public class Example { public static void main(String[] args) { LocalDateTime localDateTime = LocalDateTime.now(); System.out.println("Current Date Time: "+localDateTime); System.out.println("Subtracted 3 Years: "+localDateTime.minusYears(3)); System.out.println("Subtracted 2 Month: "+localDateTime.minusMonths(2)); System.out.println("Subtracted 3 Days: "+localDateTime.minusDays(3)); System.out.println("Subtracted 6 Hours: "+localDateTime.minusHours(6)); System.out.println("Subtracted 30 Minutes: "+localDateTime.minusMinutes(30)); System.out.println("Subtracted 15 Seconds: "+localDateTime.minusSeconds(15)); System.out.println("Subtracted 2000 nano Seconds: "+localDateTime.minusNanos(2000)); } }
Producción:
Current Date Time: 2017-10-31T14:31:04.695 Subtracted 3 Years: 2014-10-31T14:31:04.695 Subtracted 2 Month: 2017-08-31T14:31:04.695 Subtracted 3 Days: 2017-10-28T14:31:04.695 Subtracted 6 Hours: 2017-10-31T08:31:04.695 Subtracted 30 Minutes: 2017-10-31T14:01:04.695 Subtracted 15 Seconds: 2017-10-31T14:30:49.695 Subtracted 2000 nano Seconds: 2017-10-31T14:31:04.694998
6. Ejemplo de Java LocalDateTime: métodos isBefore (), isAfter () e isEqual ()
import java.time.LocalDateTime; public class Example { public static void main(String[] args) { //current date time LocalDateTime currentDateTime = LocalDateTime.now(); System.out.println("Current Date Time: "+currentDateTime); //given date time LocalDateTime localDateTime = LocalDateTime.of(2017, 9, 30, 11, 20, 45, 999); System.out.println("Given Date Time: "+localDateTime); System.out.println("Is current date/time before given date/time? "+ currentDateTime.isBefore(localDateTime)); System.out.println("Is current date/time after given date/time? "+ currentDateTime.isAfter(localDateTime)); System.out.println("Is current date/time equal to given date/time? "+ currentDateTime.isEqual(localDateTime)); } }
Producción:
Current Date Time: 2017-10-31T14:37:18.128 Given Date Time: 2017-09-30T11:20:45.000000999 Is current date/time before given date/time? false Is current date/time after given date/time? true Is current date/time equal to given date/time? false
7. Ejemplo de métodos LocalDateTime “con”
Con métodos como withYear (), withMonth (), etc. Devuelven una copia de LocalDateTime después de reemplazar un valor de fecha u hora en particular (según el método) con el valor especificado. Por ejemplo, withYear (2016) reemplazaría el año en la fecha / hora con 2016 y los campos restantes en la fecha y hora permanecerían sin cambios.
import java.time.LocalDateTime; public class Example { public static void main(String[] args) { //current date time LocalDateTime currentDateTime = LocalDateTime.now(); System.out.println("Current Date Time: "+currentDateTime); LocalDateTime localDateTime2 = currentDateTime.withYear(2016); System.out.println("Year Changed: "+localDateTime2); LocalDateTime localDateTime3 = currentDateTime.withHour(3); System.out.println("Hour Changed: "+localDateTime3); } }
Producción:
Current Date Time: 2017-10-31T14:42:13.319 Year Changed: 2016-10-31T14:42:13.319 Hour Changed: 2017-10-31T03:42:13.319
En el ejemplo anterior, podemos ver cómo funcionan los métodos withYear () y withHour (). Del mismo modo, los otros métodos como withMonth (), withMinute (), withSecond, withNano () etc. Reemplazan el mes, los minutos, los segundos y los nanosegundos respectivamente en la fecha y la hora.