LocalDate、LocalTime、LocalDateTime

這三個有相似的地方,以下總結一下工作中使用到的方法:

  1. 基本的創建時間
LocalDate ld = LocalDate.of(2017, 5, 10);
LocalTime lt = LocalTime.of(15, 0);
LocalDateTime ldt = LocalDateTime.of(ld, lt);
ld = ldt.toLocalDate();
lt = ldt.toLocalTime();
ldt = ld.atTime(15,0);
ldt = ld.atStartOfDay(); // ld這一天的凌晨
ld = LocalDate.now(); // 還有好多,就不一一列舉了

還有String類型轉成這三種類型

DateTimeFormatter sf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDate ld = LocalDate.parse("2017-05-10");
LocalTime lt = LocalTime.parse("15:15");
LocalDateTime ldt = LocalDateTime.parse("2017-05-10 15:16", sf); // 當轉成LocalDateTime類型時,需要給出時間格式,具體原因沒了解過。。。。
  1. 計算兩個日期相差的天數:
LocalDate ld1 = LocalDate.of(2017, 5, 10);
LocalDate ld2 = LocalDate.of(2016, 4, 10);
Long days = ld1.toEpochDay() - ld2.toEpochDay(); // 輸出是long類型的,LocalTime也有類型的方法不過算的是相差多少秒。
  1. 日月年
LocalDate ld = LocalDate.of(2017, 5, 10);
System.out.println(ld.getDayOfMonth()); // 10,這個月的哪一天
System.out.println(ld.getDayOfYear()); // 130,這一年的哪一天
System.out.println(ld.getMonthValue()); // 5,月份(int類型)
System.out.println(ld.getYear()); // 2017, 年份(int類型)
System.out.println(ld.getDayOfWeek().getValue()); // 3, 周幾(int類型)
System.out.println(ld.getMonth()); // MAY, Month類型

判斷閏年

System.out.println(ld.isLeapYear()); //false
ld.lengthOfMonth(); // 這一月的天數
  1. 目前就這麼多,遇到後再更新。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章