JAVA java8 日期、时间操作(java8全新日期时间处理)

一、日期

1.获取当天日期

(Java 8中的 LocalDate 用于表示当天日期。和java.util.Date不同,它只有日期,不包含时间。))

LocalDate date = LocalDate.now();
        System.out.println("当前日期=" + date);

2.构造指定日期

( LocalDate.of()创建任意日期, 该方法需要传入年、月、日做参数,返回对应的LocalDate实例。)

LocalDate date2 = LocalDate.of(2020, 1, 1);
        System.out.println("2020年=" + date2);

3.获取年月日信息

LocalDate date3 = LocalDate.now();
        System.out.printf("年=%d,月=%d,日=%d", date3.getYear(), date3.getMonthValue(), date3.getDayOfMonth());
        System.out.print("\n");

4.比较两个日期是否相等

LocalDate now = LocalDate.now();
        LocalDate date4 = LocalDate.of(2020, 1, 1);
        System.out.println("日期是否相等=" + now.equals(date4));

二、时间

获取当前时间

(Java 8中的 LocalTime 用于表示当天时间。和java.util.Date不同,它只有时间,不包含日期。)

    LocalTime time = LocalTime.now();
        System.out.println("当前时间=" + time);

三、日期与时间

当前日期与时间

LocalDateTime dateTime = LocalDateTime.now();
        System.out.println("当前日期与时间=" + dateTime.format(formatter));

四、比较与计算

1.日期时间计算

(Java8提供了新的plusXxx()方法用于计算日期时间增量值,替代了原来的add()方法。新的API将返回一个全新的日期时间示例,需要使用新的对象进行接收。)

LocalTime time2 = LocalTime.now();
        LocalTime newTime = time2.plusHours(2);
        System.out.println("newTime=" + newTime);//时间增量

        LocalDate date5 = LocalDate.now();
        LocalDate newDate = date5.plusDays(2);
        System.out.println("newDate=" + newDate);//日期增量

2.日期时间比较

(Java8提供了isAfter()、isBefore()用于判断当前日期时间和指定日期时间的比较)

  LocalDate now2 = LocalDate.now();
        LocalDate date6 = LocalDate.of(2020, 1, 1);
        if (now2.isAfter(date6)) {
    
    
            System.out.println("2019已经过去了");
        }

        LocalDate future = LocalDate.of(2023, 1, 1);
        if (now2.isBefore(future)) {
    
    
            System.out.println("2023年还没来");
        }

五、时区

创建带有时区的日期时间(Java 8不仅分离了日期和时间,也把时区分离出来了。现在有一系列单独的类如ZoneId来处理特定时区,ZoneDateTime类来表示某时区下的时间。)

ZoneId shanghaiZoneId = ZoneId.of("Asia/Shanghai");
        ZonedDateTime shanghaiZonedDateTime = ZonedDateTime.now(shanghaiZoneId);//上海时间

        ZoneId tokyoZoneId = ZoneId.of("Europe/Madrid");
        ZonedDateTime madridZonedDateTime = ZonedDateTime.now(tokyoZoneId);//西班牙时间

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        System.out.println("上海时间: " + shanghaiZonedDateTime.format(formatter));
        System.out.println("西班牙时间: " + madridZonedDateTime.format(formatter));

猜你喜欢

转载自blog.csdn.net/qq_45844443/article/details/110408021