Java 8 LocalDate的介绍及应用

阅读时间: 3分钟

Java 8 新增了一个java.time.LocalDate是用来取得日期资讯。
对于旧的java.util.Date,可以取代。

LocalDate没有时区及时间资讯,仅有日期资讯。使用ISO-8601日期时间系统。格式为year-month-day(例如:2020-01-17)。
LocalDate是不可变的(immutable object)。
LocalDate是执行绪安全的(thread-safe)。
LocalDate可取得一年中的某一天,一个月中的某一天,一个星期中的某一天。
LocalDate有纳入闰年(leap year)的计算。
LocalDate是value-based类别,比较两个LocalDate的实例是否相同应该使用equals()。

例子:取得日期

LocalDate d = LocalDate.now(); // 取得今日LocalDate d2= LocalDate.of(2020, 1, 17);  //或者自定义一个日期System.out.println("today:" + d.toString());      // today:2020-01-17System.out.println("year:"  + d.getYear());       // year:2020(年)System.out.println("month:" + d.getMonthValue()); // month:1(月)System.out.println("date:"  + d.getDayOfMonth()); // date:17(日)System.out.println("day-of-year:"  + d.getDayOfYear());            // day-of-year:17(2020年的第17天)System.out.println("day-of-month:" + d.getDayOfMonth());           // day-of-month:17(2020年1月的第17天)System.out.println("day-of-week:"  + d.getDayOfWeek().name());     // day-of-week:Friday (星期五)System.out.println("day-of-week:"  + d.getDayOfWeek().getValue()); // day-of-week:5(这星期的第5天)

例子:日期运算

System.out.println(d.minusDays(1L));   // 2020-01-16(减一天)System.out.println(d.minusWeeks(1L));  // 2020-01-10(减一周)System.out.println(d.minusMonths(1L)); // 2019-12-17(减一月)System.out.println(d.minusYears(1L));  // 2019-01-17(减一年)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(加一年)

例子:在一段文字中取得日期资讯

// public static LocalDate parse(CharSequence text, DateTimeFormatter formatter)DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyyMMdd");System.out.println(LocalDate.parse("20200117", format)); // 2020-01-17

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章