java8新增了LocalDate、LocalTime、LocalTimeDate等,相比于之前的Date,新的類是線程安全的。
整理了一下各個場景下的用法,上代碼:
package dateTest;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;
public class DateTest {
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
System.out.println("獲取當前日期==" + localDate);
System.out.println("獲取月份==" + localDate.getMonthValue());
System.out.println("獲取月份==" + localDate.getMonth());
System.out.println("獲取年==" + localDate.getYear());
System.out.println("獲取日==" + localDate.getDayOfMonth());
System.out.println("獲取周==" + localDate.get(ChronoField.DAY_OF_WEEK));
System.out.println("獲取周==" + localDate.getDayOfWeek());
LocalTime localTime = LocalTime.now();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
String time = dateTimeFormatter.format(localTime);
System.out.println("獲取時分秒==" + localTime);
System.out.println("獲取時分秒==" + time);
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String createTime = dateTimeFormatter1.format(localDateTime);
System.out.println("獲取年月日時分秒==" + createTime);
LocalDateTime dateTime = LocalDateTime.of(localDate, localTime);
System.out.println("獲取年月日時分秒==" + dateTimeFormatter1.format(dateTime));
LocalDateTime dateTime2 = LocalDateTime.parse("2020-05-20 20:20:20", dateTimeFormatter1);
System.out.println("字符串轉(zhuǎn)換locaDateTime==" + dateTime2);
//計算時間差
Duration duration = Duration.between(dateTime2, localDateTime );
System.out.println("相差天數(shù)==" + duration.toDays());
System.out.println("相差毫秒數(shù)==" + duration.toMillis());
System.out.println("相差分鐘數(shù)==" + duration.toMinutes());
System.out.println("相差小時數(shù)==" + duration.toHours());
System.out.println("相差納秒數(shù)==" + duration.toNanos());
//月份時間差
LocalDate start = LocalDate.parse("2020-01-28");
LocalDate end = LocalDate.parse("2020-06-03");
long year = start.until(end, ChronoUnit.YEARS);
long month = start.until(end, ChronoUnit.MONTHS);
long days = start.until(end, ChronoUnit.DAYS);
System.out.println("間隔:" + year + "年");
System.out.println("間隔:" + month + "月");
System.out.println("間隔:" + days + "天");
}
}
運行結(jié)果如下圖:

LocalDateconsole結(jié)果