3. Aprendizaje de procesamiento de fecha y hora JDK8

Antes de jdk8, se usaban SimpleDateFormat, Calendar y otras clases

  • Desventajas de la versión anterior: java.util.Date es una API no segura para subprocesos. El diseño de la API es relativamente pobre y el objeto de fecha / hora es relativamente más problemático.

Java 8 lanza la nueva API de fecha y hora (JSR 310) para fortalecer aún más el manejo de fechas y horas

  • Se agregaron muchas apis comunes, como comparación de fecha / hora, suma y resta, formateo, etc.
  • La ubicación del paquete java.time

Nuclear

  • LocalDate: fecha sin hora específica
  • LocalTime: hora sin fecha.
  • LocalDateTime: contiene la fecha y la hora.

API de LocalDate de uso común

  LocalDate today = LocalDate.now();
        System.out.println("今天⽇期:" + today);//获取年,⽉,⽇,周⼏
        System.out.println("现在是哪年:" + today.getYear());
        System.out.println("现在是哪⽉:" + today.getMonth());
        System.out.println("现在是哪⽉(数字):" + today.getMonthValue());
        System.out.println("现在是⼏号:" + today.getDayOfMonth());
        System.out.println("现在是周⼏:" + today.getDayOfWeek());
        //加减年份, 加后返回的对象才是修改后的, 旧的依旧是旧的
        LocalDate changeDate = today.plusYears(1);
        System.out.println("加后是哪年:" + changeDate.getYear());
        System.out.println("旧的是哪年:" + today.getYear());
//⽇期⽐较
        System.out.println("isAfter: " + changeDate.isAfter(today));
//getYear() int 获取当前⽇期的年份
//getMonth() Month 获取当前⽇期的⽉份对象
//getMonthValue() int 获取当前⽇期是第⼏⽉
//getDayOfWeek() DayOfWeek 表示该对象表示的⽇期是星期⼏
//getDayOfMonth() int 表示该对象表示的⽇期是这个⽉第⼏天
//getDayOfYear() int 表示该对象表示的⽇期是今年第⼏天
//withYear(int year) LocalDate 修改当前对象的年份
//withMonth(int month) LocalDate 修改当前对象的⽉份
//withDayOfMonth(int dayOfMonth) LocalDate 修改当前对象在当⽉的⽇ 期
//plusYears(long yearsToAdd) LocalDate 当前对象增加指定的年份数
//plusMonths(long monthsToAdd) LocalDate 当前对象增加指定的⽉份数
//plusWeeks(long weeksToAdd) LocalDate 当前对象增加指定的周数
//plusDays(long daysToAdd) LocalDate 当前对象增加指定的天数
//minusYears(long yearsToSubtract) LocalDate 当前对象减去指定的年                数
//minusMonths(long monthsToSubtract) LocalDate 当前对象减去注定的⽉数
//minusWeeks(long weeksToSubtract) LocalDate 当前对象减去指定的周                数
//minusDays(long daysToSubtract) LocalDate 当前对象减去指定的天数
// compareTo(ChronoLocalDate other) int ⽐较当前对象和other对象在时        间上的⼤⼩,返回值如果为正,则当前对象时间较晚,
//isBefore(ChronoLocalDate other) boolean ⽐较当前对象⽇期是否在        other对象⽇期之前
//isAfter(ChronoLocalDate other) boolean ⽐较当前对象⽇期是否在       other对象⽇期之后
//isEqual(ChronoLocalDate other) boolean ⽐较两个⽇期对象是否相等

Formato de fecha y hora

  • Antes de JDK8: SimpleDateFormat para formatear, pero SimpleDateFormat no es seguro para subprocesos
  • Después de JDK8: Introducción de fecha y hora seguras para subprocesos DateTimeFormatter
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd
HH:mm:ss");
String ldtStr = dtf.format(ldt);
System.out.println(ldtStr);
  • Obtener el objeto de fecha y hora especificado
LocalDateTime ldt = LocalDateTime.of(2020, 11, 11, 8, 20, 30);
System.out.println(ldt);
  • Calcule la diferencia de fecha y hora java.time.Duration
LocalDateTime today = LocalDateTime.now();
 System.out.println(today);
 LocalDateTime changeDate = LocalDateTime.of(2020,10,1,10,40,30);
 System.out.println(changeDate);
 Duration duration = Duration.between( today,changeDate);//第⼆个参数减第⼀
个参数
 System.out.println(duration.toDays());//两个时间差的天数
 System.out.println(duration.toHours());//两个时间差的⼩时数
 System.out.println(duration.toMinutes());//两个时间差的分钟数
 System.out.println(duration.toMillis());//两个时间差的毫秒数
 System.out.println(duration.toNanos());//两个时间差的纳秒数

 

Supongo que te gusta

Origin blog.csdn.net/qq_37790902/article/details/103309157
Recomendado
Clasificación