15. 新日期时间API介绍与实战【重要】

117 阅读2分钟

15. 新日期时间API介绍

image.png

常用日期时间的操作

新版JDK8时间日期操作-LocalDate

@Test
@DisplayName("新版JDK8时间日期操作")
public void test2(){

    // 1.得到当前日期
    LocalDate now = LocalDate.now();
    System.out.println("now = " + now);

    // 2.得到指定的时间日期
    LocalDate date1 = LocalDate.of(2023, 04, 03);
    System.out.println("date1 = " + date1);

    // 3.根据LocalDate对象获取对应的日期信息
    System.out.println("年"+now.getYear());
    System.out.println("月"+now.getMonth().getValue());
    System.out.println("日"+now.getDayOfMonth());
    System.out.println("礼拜"+now.getDayOfWeek().getValue());
    
}
now = 2023-04-05
date1 = 2023-04-03
年2023
月4
日5
礼拜3

新版JDK8时间日期操作:获取当前时间-LocalTime

@Test
@DisplayName("新版JDK8时间日期操作:获取当前时间")
public void test3(){
    LocalTime now = LocalTime.now();
    System.out.println("now = " + now);
    
    System.out.println("当前-时"+now.getHour());
    System.out.println("当前-分"+now.getMinute());
    System.out.println("当前-秒"+now.getSecond());
}
now = 21:00:59.622
当前-时21
当前-分0
当前-秒59

获取年月日时分秒-LocalDateTime

@Test
@DisplayName("获取年月日时分秒")
public void test4(){
    LocalDateTime now = LocalDateTime.now();
    System.out.println("now = " + now);

    System.out.println("时:"+now.getHour());
}
now = 2023-04-05T21:03:50.566
年:21

时间日期的修改和比较【重要】

image.png

注意:在进行日期时间修改的时候,原来的LocalDate对象时不会被修改,每次操作都是返回了一个新的LocalDate对象,所以在多线程场景下时数据安全的。

时间日期的格式化

@Test
@DisplayName("时间日期的格式化和解析操作")
public void test5(){
    LocalDateTime now = LocalDateTime.now();

    // 指定格式
    DateTimeFormatter isoLocalDateTime = DateTimeFormatter.ISO_LOCAL_DATE_TIME;

    // 将日期转换为字符串-系统默认
    String format = now.format(isoLocalDateTime);
    System.out.println("format = " + format);

    // 自定义-将日期转换为字符串
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    String format1 = now.format(dateTimeFormatter);
    System.out.println("format1 = " + format1);

}
format = 2023-04-05T21:26:09.641
format1 = 2023-04-05 21:26:09

将字符串解析为一个日期时间类型

@Test
@DisplayName("时间日期的格式化和解析操作")
public void test5(){
    LocalDateTime now = LocalDateTime.now();

    // 指定格式
    DateTimeFormatter isoLocalDateTime = DateTimeFormatter.ISO_LOCAL_DATE_TIME;

    // 将日期转换为字符串-系统默认
    String format = now.format(isoLocalDateTime);
    System.out.println("format = " + format);

    // 自定义-将日期转换为字符串
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    String format1 = now.format(dateTimeFormatter);
    System.out.println("format1 = " + format1);

    // 将字符串解析为一个日期时间类型
    LocalDateTime parse = LocalDateTime.parse("1997-06-09 22:22:22",dateTimeFormatter);
    System.out.println("parse = " + parse);


}
format = 2023-04-05T21:29:30.455
format1 = 2023-04-05 21:29:30
parse = 1997-06-09T22:22:22