JDK8加入

    1. LocalDate(日期)
    2. LocalTime(时间)
    3. LocalDateTime(日期时间)
    • LocalDate只包含日期,可以获取日期字段
    • LocalTime只包含时间,可以获取时间字段
    • LocalDateTime包含日期+时间,可以获取日期和时间字段

      LocalDateTime ldt = LocalDateTime.now(); //LocalDate.now()://LocalTime.now() System.out.println(ldt); ldt.getYear(); ldt.getMonthValue(); ldt.getMonth(); ldt.getDayOfMonth(); ldt.getHour(); ldt.getMinute(); ldt.getSecond();

    1. DateTimeFormatter格式日期类类似于SimpleDateFormat

      DateTimeFormat dtf = DateTimeFormatter.ofPattern(格式); String str = dtf. format(日期对象);

    2. Instant时间戳

    • 类似于Date
    • 提供了一系列和Date类转换的方式Instant—>Date:
    • Date date = Date.from(instant);Date>lnstant:
    • Instant instant = date.tolnstant();
    1. 第三代日期类更多方法
    • LocalDateTime类
    • MonthDay类:检查重复事件是否是闰年
    • 增加日期的某个部分
    • 使用plus方法测试增加时间的某个部分
    • 使用minus方法测试查看一年前和一年后的日期 ```java package test;

    import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter;

    public class Main { public static void main(String[] args) { //第三代日期 //1. 使用now() 返回表示当前日期时间的 对象 LocalDateTime ldt = LocalDateTime.now(); //LocalDate.now();//LocalTime.now() System.out.println(ldt);

    1. //2. 使用DateTimeFormatter 对象来进行格式化
    2. // 创建 DateTimeFormatter对象
    3. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    4. String format = dateTimeFormatter.format(ldt);
    5. System.out.println("格式化的日期=" + format);
    6. System.out.println("年=" + ldt.getYear());
    7. System.out.println("月=" + ldt.getMonth());
    8. System.out.println("月=" + ldt.getMonthValue());
    9. System.out.println("日=" + ldt.getDayOfMonth());
    10. System.out.println("时=" + ldt.getHour());
    11. System.out.println("分=" + ldt.getMinute());
    12. System.out.println("秒=" + ldt.getSecond());
    13. LocalDate now = LocalDate.now(); //可以获取年月日
    14. LocalTime now2 = LocalTime.now();//获取到时分秒
    15. //提供 plus 和 minus方法可以对当前时间进行加或者减
    16. //看看890天后,是什么时候 把 年月日-时分秒
    17. LocalDateTime localDateTime = ldt.plusDays(890);
    18. System.out.println("890天后=" + dateTimeFormatter.format(localDateTime));
    19. //看看在 3456分钟前是什么时候,把 年月日-时分秒输出
    20. LocalDateTime localDateTime2 = ldt.minusMinutes(3456);
    21. System.out.println("3456分钟前 日期=" + dateTimeFormatter.format(localDateTime2));
    22. }

    }

    1. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/21705001/1639146873449-85f6870b-74b8-4e1a-a869-e19e825abea6.png#clientId=u424d79ca-089a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=502&id=u4cfa3640&margin=%5Bobject%20Object%5D&name=image.png&originHeight=401&originWidth=600&originalType=binary&ratio=1&rotation=0&showTitle=false&size=204311&status=done&style=none&taskId=ua74184b9-7926-4d5c-a868-17a84f1eaa1&title=&width=751)
    2. ```java
    3. package test;
    4. import java.time.Instant;
    5. import java.util.Date;
    6. public class Main {
    7. public static void main(String[] args) {
    8. //1.通过 静态方法 now() 获取表示当前时间戳的对象
    9. Instant now = Instant.now();
    10. System.out.println(now);
    11. //2. 通过 from 可以把 Instant转成 Date
    12. Date date = Date.from(now);
    13. System.out.println(date);
    14. //3. 通过 date的toInstant() 可以把 date 转成Instant对象
    15. Instant instant = date.toInstant();
    16. System.out.println(instant);
    17. }
    18. }

    image.png