Java 8 可使用java.time.LocalDate
來取得日期資訊,不要再用舊的java.util.Date
了。
LocalDate
沒有時區及時間資訊,僅有日期資訊。使用ISO-8601日期時間系統。格式為year-month-day(例如:2019-02-11)。
LocalDate
是不可變的(immutable object)。
LocalDate
是執行緒安全的(thread-safe)。
LocalDate
可取得一年中的某一天,一個月中的某一天,一個星期中的某一天。
LocalDate
有納入閏年(leap year)的計算。
LocalDate
是value-based類別,比較兩個LocalDate
的實例是否相同應該使用equals()
。
LocalDate d = LocalDate.now(); // 取得今日
System.out.println("today:" + d.toString()); // today:2019-02-11
System.out.println("year:" + d.getYear()); // year:2019 (年)
System.out.println("month:" + d.getMonthValue()); // month:2 (月)
System.out.println("date:" + d.getDayOfMonth()); // date:11 (日)
System.out.println("day-of-year:" + d.getDayOfYear()); // day-of-year:42 (2019年的第42天)
System.out.println("day-of-month:" + d.getDayOfMonth()); // day-of-month:11 (2019年2月的第11天)
System.out.println("day-of-week:" + d.getDayOfWeek().name()); // day-of-week:MONDAY (星期一)
System.out.println("day-of-week:" + d.getDayOfWeek().getValue()); // day-of-week:1 (這禮拜的第1天)
System.out.println(d.minusDays(1L)); // 2019-02-10(減一天)
System.out.println(d.minusWeeks(1L)); // 2019-02-04(減一周)
System.out.println(d.minusMonths(1L)); // 2019-01-11(減一月)
System.out.println(d.minusYears(1L)); // 2018-02-11(減一年)
System.out.println(d.plusDays(1L)); // 2019-02-12(加一天)
System.out.println(d.plusWeeks(1L)); // 2019-02-18(加一周)
System.out.println(d.plusMonths(1L)); // 2019-03-11(加一月)
System.out.println(d.plusYears(1L)); // 2020-02-11(加一年)
// parse 字串為LocalDate
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyyMMdd");
System.out.println(LocalDate.parse("20150303", format)); // 2015-03-03
參考:
沒有留言:
張貼留言