Además de las nuevas funciones, como las expresiones Lambda y los streams Stream, Java 8 también tiene nuevas API de fecha y hora. ¿Por qué introducen nuevas API de procesamiento de fechas? La clase de procesamiento de fecha anterior no es segura para subprocesos y es muy problemático lidiar con las zonas horarias. Por lo tanto, Java 8 ha agregado muchas API nuevas en el paquete java.time, incluido Local (local, procesamiento de fecha y hora simplificado, sin problemas de zona horaria) y Zoned (zona horaria, fecha y hora se procesan a través de la zona horaria especificada).
Cómo usarlo, solo dé algunos ejemplos.
//本地API
LocalDateTime currentime = LocalDateTime.now();
System.out.println("当前时间:"+currentime);
LocalDate date1 = currentime.toLocalDate();
System.out.println("当前日期的年月日:"+ date1);
LocalTime time1 = currentime.toLocalTime();
System.out.println("当前日期的时分秒:"+time1);
LocalDateTime updateDate = currentime.withDayOfMonth(10).withMonth(9).withYear(2018);
System.out.println("修改后的日期:"+updateDate);
LocalDate date2 = LocalDate.of(2017,Month.DECEMBER,12);
System.out.println("自定义一个日期:"+date2);
LocalTime time2 = LocalTime.of(12,34,56);
System.out.println("自定义时分秒:"+time2);
LocalTime time3 = LocalTime.parse("10:23:45");
System.out.println("字符串转换为时间:"+time3);
//时区API
ZonedDateTime zoneDate = ZonedDateTime.now();
System.out.println("带有时区的日期:"+zoneDate);
ZoneId id = ZoneId.systemDefault();
System.out.println("获取默认时区:"+id);
ZoneId updateId = ZoneId.of("Europe/Paris");
System.out.println("自定义时区:"+updateId);
结果:
当前时间:2020-08-17T22:31:21.686
当前日期的年月日:2020-08-17
当前日期的时分秒:22:31:21.686
修改后的日期:2018-09-10T22:31:21.686
自定义一个日期:2017-12-12
自定义时分秒:12:34:56
字符串转换为时间:10:23:45
带有时区的日期:2020-08-17T22:31:21.706+08:00[Asia/Shanghai]
获取默认时区:Asia/Shanghai
自定义时区:Europe/Paris
Hay muchos otros métodos para las fechas, así que no daré ejemplos uno por uno. Puedes leer el código fuente y aprender por ti mismo.