Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

191
Vistas
Obtener la última fecha del mes

Tengo un objeto LocalDateTime. Quiero obtener la última fecha del mes. Entonces, si localDateTime apunta a la fecha actual del 29 de octubre. Quiero convertirlo al 31 de octubre.
¿Hay una manera limpia y fácil de hacerlo?
Mis pensamientos:
Una forma sería obtener el mes y luego hacer una declaración de cambio. Pero ese sería el enfoque largo y tedioso. No estoy seguro si hay un método incorporado
hacer lo mismo

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Utilice YearMonth.atEndOfMonth

 LocalDate date = LocalDate.now(); YearMonth month = YearMonth.from(date); LocalDate end = month.atEndOfMonth();
over 4 years ago · Santiago Trujillo Denunciar

0

import java.time.LocalDateTime; import java.time.temporal.TemporalAdjusters; public class Main { public static void main(String args[]) { LocalDateTime a = LocalDateTime.of(2021, 10, 29, 0, 0); LocalDateTime b = a.with(TemporalAdjusters.lastDayOfMonth()); System.out.println(a); System.out.println(b); } }
over 4 years ago · Santiago Trujillo Denunciar

0

Tu preguntaste:

¿Cómo agrego endTime of day a localDateTime. Veo una opción llamada LocalTime.MAX pero agrega .99999 final

No use LocalDateTime si está rastreando momentos, puntos específicos en la línea de tiempo. Esa clase carece del contexto de una zona horaria o un desplazamiento desde UTC. Por momentos, use Instant , OffsetDateTime o ZonedDateTime .

Representa un mes completo con YearMonth .

No debes intentar concretar el último momento del mes. Ese último momento es infinitamente divisible. En general, la mejor manera de definir un lapso de tiempo es el enfoque Semiabierto en lugar de Completamente cerrado. En Half-Open, el comienzo es inclusivo mientras que el final es exclusivo .

Entonces, un día comienza con el primer momento del día y se extiende hasta, pero no incluye, el primer momento del día siguiente . Un mes comienza con el primer momento del primer día del mes y termina, pero no incluye, el primer momento del primero del mes siguiente .

 ZoneId z = ZoneId.of( "Asia/Tokyo" ) ; YearMonth currentMonth = YearMonth.now( z ) ; YearMonth followingMonth = currentMonth.plusMonths( 1 ) ; ZonedDateTime start = currentMonth.atDay( 1 ).atStartOfDay( z ) ; ZonedDateTime end = followingMonth.atDay( 1 ).atStartOfDay( z ) ;

Para representar ese lapso de tiempo, agregue la biblioteca ThreeTen-Extra a su proyecto. Utilice la clase Interval con sus prácticos métodos de comparación, como abuts , overlaps y contains .

 org.threeten.extra.Interval interval = Interval.of( start.toInstant() , end.toInstant() ) ;
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda