ejemplo - string to date java
Obtenga el primer y último día del mes usando tresten, LocalDate (5)
La API se diseñó para admitir una solución que coincida estrechamente con los requisitos de la empresa
import static java.time.temporal.TemporalAdjusters.*;
LocalDate initial = LocalDate.of(2014, 2, 13);
LocalDate start = initial.with(firstDayOfMonth());
LocalDate end = initial.with(lastDayOfMonth());
Sin embargo, las soluciones de Jon también están bien.
Tengo un LocalDate que necesita obtener el primer y último día del mes. ¿Cómo puedo hacer eso?
p.ej. 13/2/2014 Necesito obtener 1/2/2014 y 28/2/2014 en formato LocalDate.
Utilizando tres clases LocalDate.
La respuesta de Jon Skeets es correcta y ha merecido mi aval, simplemente agregando esta solución ligeramente diferente para completarla:
import static java.time.temporal.TemporalAdjusters.lastDayOfMonth;
LocalDate initial = LocalDate.of(2014, 2, 13);
LocalDate start = initial.withDayOfMonth(1);
LocalDate end = initial.with(lastDayOfMonth());
Para completar, y más elegante en mi opinión:
YearMonth month = YearMonth.from(date);
LocalDate start = month.atDay(1);
LocalDate end = month.atEndOfMonth();
Prueba esto:
LocalDate initial = LocalDate.of(2014, 2, 13);
LocalDate start = initial.withDayOfMonth(1);
LocalDate end = initial.withDayOfMonth(initial.getMonthOfYear().getLastDayOfMonth(false));
System.out.println(start);
System.out.println(end);
puede encontrar el resultado de deseo pero necesita cuidar el parámetro verdadero / falso para el método getLastDayOfMonth
ese parámetro denota año bisiesto
Solo use withDayOfMonth
, y lengthOfMonth()
:
LocalDate initial = LocalDate.of(2014, 2, 13);
LocalDate start = initial.withDayOfMonth(1);
LocalDate end = initial.withDayOfMonth(initial.lengthOfMonth());