Podemos crea un objeto LocalDate desde diversos orígenes
- Desde el reloj del sistema
- static LocalDate now()
- Desde un reloj definido (ver Clock)
- static LocalDate now(Clock clock)
- Desde el reloj del sistema en la zona indicada
- static LocalDate now(ZoneId zone)
- Pasandole tres enteros correspondientes a año, mes y dia
- static LocalDate of(int year, int month, int dayOfMonth)
- Pasándole año como entero, mes como literal y día como entero
- static LocalDate of(int year, Month month, int dayOfMonth)
- Indicando el numero de días transcurridos desde 1/1/1970
- static LocalDate ofEpochDay(long epochDay)
- Pasandole el año, y el dia del año
- static LocalDate ofYearDay(int year, int dayOfYear)
- Indicando el texto en una string, añadiéndole patrón de formato si no es el estandar
- static LocalDate parse(CharSequence text)
- static LocalDate parse(CharSequence text, DateTimeFormatter formatter)
- Desde otro campo temporal que contenga la información necesaria (día, mes, año)
- static LocalDate from(TemporalAccessor temporal)
En el ejemplo, mostramos todas las posibilidades indicadas. La clase es LocalDateCreate.java el mi repositorio https://github.com/recursosformacion/java08/tree/main/Java08
public static void main(String[] args) {
LocalDate hoy = LocalDate.now();
Clock clock = Clock.systemDefaultZone();
LocalDate hoyDef = LocalDate.now(clock);
LocalDate hoyMX = LocalDate.now(ZoneId.of("America/Mexico_City"));
System.out.println("Hoy :" + hoy);
System.out.println("Hoy Def :" + hoyDef);
System.out.println("Hoy MX :" + hoyMX);
//---of
LocalDate unDia = LocalDate.of(2021, 10,29);
LocalDate otroDia = LocalDate.of(2022, Month.FEBRUARY ,28);
System.out.println("unDia :" + unDia);
System.out.println("otroDia :" + otroDia);
//ofEpoch, ofYear
LocalDate desdeEpoch = LocalDate.ofEpochDay(20);
LocalDate desdeYear = LocalDate.ofYearDay(2022,360);
System.out.println("desdeEpoch :" + desdeEpoch);
System.out.println("desdeYear :" + desdeYear);
// parse
LocalDate dParse = LocalDate.parse("2020-08-15");
DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd MMMM yyyy");
LocalDate dParseF = LocalDate.parse("12 febrero 2020", formato);
System.out.println("dParse :" + dParse);
System.out.println("dParseF :" + dParseF);
// from
LocalDateTime ahora = LocalDateTime.now();
LocalDate pFrom = LocalDate.from(ahora);
System.out.println("dFrom :" + pFrom);
}
Si lo ejecutais, dará como resultado:
Relacionado
Descubre más desde Recursos para formacion
Suscríbete y recibe las últimas entradas en tu correo electrónico.