obtener manejo horas formato fecha ejemplo actual aaaa java java-time

formato - manejo de horas en java



¿Cómo obtener el final del día cuando se le da una fecha local? (3)

Aquí hay algunas alternativas, dependiendo de lo que necesite:

LocalDate.now().atTime(23, 59, 59); //23:59:59 LocalDate.now().atTime(LocalTime.MAX); //23:59:59.999999999

Pero no hay un método incorporado.

Como comentó @JBNizet, si desea crear un intervalo, también puede usar un intervalo hasta la medianoche, exclusivo.

¿Cómo obtener el final del día cuando se le da una fecha local?

Podría conseguirlo haciendo

LocalDateTime.of(LocalDate.now(), LocalTime.of(23, 59, 59));

Pero, ¿hay un método equivalente ''atStartOfDay'' para el final del día?

LocalDate.now().atStartOfDay(); LocalDate.now().atEndOfDay(); //doesn''t work


Comienza el día siguiente y resta 1 segundo. Esto debería funcionar para usted. :

public static void main(String[] args) { LocalDate date = LocalDate.now(); LocalDateTime dt = date.atStartOfDay().plusDays(1).minusSeconds(1); System.out.println(dt); }

O / P:

2016-04-04T23:59:59


Estas son las variantes disponibles en LocalTime , aviso MIDNIGHT y MIN son iguales.

LocalDate.now().atTime(LocalTime.MIDNIGHT); //00:00:00.000000000 LocalDate.now().atTime(LocalTime.MIN); //00:00:00.000000000 LocalDate.now().atTime(LocalTime.NOON); //12:00:00.000000000 LocalDate.now().atTime(LocalTime.MAX); //23:59:59.999999999

Como referencia, esta es la implementación en java.time.LocalTime

/** * Constants for the local time of each hour. */ private static final LocalTime[] HOURS = new LocalTime[24]; static { for (int i = 0; i < HOURS.length; i++) { HOURS[i] = new LocalTime(i, 0, 0, 0); } MIDNIGHT = HOURS[0]; NOON = HOURS[12]; MIN = HOURS[0]; MAX = new LocalTime(23, 59, 59, 999_999_999); }