1. 程式人生 > >LocalDate、LocalTime、LocalDateTime

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. 目前就這麼多,遇到後再更新。