引出第三代日期類
JDK 1.0中包含了一個 JAVA.util.Date 類,但是它的大多數方法已經在 DK 1.1引入)Calendar 類之后被棄用了,而 Calendar 也存在的問題是:
- 可變性:像日期和時間這樣的類應該是不可變的。
- 偏移性: Date 中的年份是從1900開始的,而月份都從0開始,真正使用的時候還需要處理下。
- 格式化:格式化只對 Date 有用, Calendar 則不行。
- 線程不安全:它們也不是線程安全的;不能處理閏秒等(每隔2天,多出1s)。
jdk1.8中引入了第三代日期類,來解決上面的問題
三代日期類常用的方法
public class LocalDate01 {
public static void main(String[] args) {
//解讀:
//1.使用now()返回表示當前日期的對象
//類似的 LocalDate.now() LocalTime.now()
//2.DateTimeFormatter 格式日期類
//創建DateTimeFormatter 對象 具體的格式化的字符可以在jdk1.8 api文檔中找到
// 兩種方式格式化:
//方式1:調用LocalDateTime對象的format(DateTimeFormatter)
//方式2:調用 DateTimeFormatter對象的format(LocalDateTime)
DateTimeFormatter dft = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime ldt=LocalDateTime.now();
System.out.println("沒有格式化之前的日期輸出:"+ldt);
System.out.println("使用方式1格式化日期輸出:"+ldt.format(dft));
String format = dft.format(ldt);
System.out.println("使用方式2格式化日期輸出:"+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());
}
}