JDK8加入
- LocalDate(日期)
- LocalTime(时间)
- 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();
DateTimeFormatter格式日期类类似于SimpleDateFormat
DateTimeFormat dtf = DateTimeFormatter.ofPattern(格式); String str = dtf. format(日期对象);
Instant时间戳
- 类似于Date
- 提供了一系列和Date类转换的方式Instant—>Date:
- Date date = Date.from(instant);Date>lnstant:
- Instant instant = date.tolnstant();
- 第三代日期类更多方法
- 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);
//2. 使用DateTimeFormatter 对象来进行格式化
// 创建 DateTimeFormatter对象
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String format = dateTimeFormatter.format(ldt);
System.out.println("格式化的日期=" + format);
System.out.println("年=" + ldt.getYear());
System.out.println("月=" + ldt.getMonth());
System.out.println("月=" + ldt.getMonthValue());
System.out.println("日=" + ldt.getDayOfMonth());
System.out.println("时=" + ldt.getHour());
System.out.println("分=" + ldt.getMinute());
System.out.println("秒=" + ldt.getSecond());
LocalDate now = LocalDate.now(); //可以获取年月日
LocalTime now2 = LocalTime.now();//获取到时分秒
//提供 plus 和 minus方法可以对当前时间进行加或者减
//看看890天后,是什么时候 把 年月日-时分秒
LocalDateTime localDateTime = ldt.plusDays(890);
System.out.println("890天后=" + dateTimeFormatter.format(localDateTime));
//看看在 3456分钟前是什么时候,把 年月日-时分秒输出
LocalDateTime localDateTime2 = ldt.minusMinutes(3456);
System.out.println("3456分钟前 日期=" + dateTimeFormatter.format(localDateTime2));
}
}
![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)
```java
package test;
import java.time.Instant;
import java.util.Date;
public class Main {
public static void main(String[] args) {
//1.通过 静态方法 now() 获取表示当前时间戳的对象
Instant now = Instant.now();
System.out.println(now);
//2. 通过 from 可以把 Instant转成 Date
Date date = Date.from(now);
System.out.println(date);
//3. 通过 date的toInstant() 可以把 date 转成Instant对象
Instant instant = date.toInstant();
System.out.println(instant);
}
}