說明: jdk1.8 嚴格區分LocalDate(日期) LocalDateTime(時間日期) LocalTime(時間)
public static void main(String[] args) {
System.out.println(LocalDate.now());//年月日
System.out.println(LocalDateTime.now());//年月日時分秒
System.out.println(LocalTime.now());//時分秒
//localDateTime 獲取當前時間
DateTimeFormatter dateTimeFormatter= DateTimeFormatter.ofPattern("yy-MM-dd");
LocalDate localDateTime=LocalDate.now();
localDateTime.format(dateTimeFormatter);
System.out.println(localDateTime);
//字符轉成LocalDateTime
String time="2018-05-18 23:24:25";
DateTimeFormatter dateTimeFormatter2=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");//嚴格遵守大小寫
LocalDateTime localDate=LocalDateTime.parse(time,dateTimeFormatter2);
LocalDate localDate1= LocalDate.of(localDate.getYear(),localDate.getMonth(),localDate.getDayOfMonth());
System.out.println(localDate1);//2018-05-18
//date 轉LocalDateTime
java.util.Date date = new java.util.Date();
ZoneId zone = ZoneId.systemDefault();
Instant instant = date.toInstant();
LocalDateTime localDateTime2 = LocalDateTime.ofInstant(instant, zone);
System.out.println(localDateTime2);
// LocalDateTime 轉date
LocalDateTime localDateTime3 = LocalDateTime.now();
Instant instan3 = localDateTime3.atZone(zone).toInstant();
java.util.Date date3 = Date.from(instant);
System.out.println(date3);
//獲取某個時間點的時間
LocalDateTime today_start = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);//當天最小時刻 00:00:00
LocalDateTime today_end = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);//當天最大時刻 23:59:59
//比較時間差
在jdk1.8以后,對表示日期時間的類型進行了重新分類,這里出現了2個新的類,Duraction 和Period
Duraction表示:時間的區間,用來度量秒和納秒之間的時間值
Period表示:一段時間的區間,用來度量年月日和幾天之間的時間值
java.time.Duration duration = java.time.Duration.between(LocalDateTime startTime, LocalDateTime endTime );
duration.toMinutes() //兩個時間差的分鍾數
toNanos()//納秒
getSeconds() //秒
toMillis()//毫秒
toMinutes()//分鍾
toHours()//小時
LocalDate localDate1 = LocalDate.of(2021, 9, 1);
LocalDate localDate2 = LocalDate.of(2020, 10, 2);
Period next = Period.between(localDate1, localDate2);
System.out.println("相隔多少天:" + next.getDays());//只比較日差 不比較年和月
System.out.println(localDate1.toEpochDay() - LocalDate.now().toEpochDay()); //都轉換成天數 相減,得到年月日的差
}