LocalDate的使用
1.
java.time.LocalDate ->只对年月日做出处理 java.time.LocalTime ->只对时分秒纳秒做出处理 java.time.LocalDateTime ->同时可以处理年月日和时分秒
2.
// 获取今天的日期 LocalDate today = LocalDate.now(); // 今天是几号 int dayofMonth = today.getDayOfMonth(); // 今天是周几(返回的是个枚举类型,需要再getValue()) int dayofWeek = today.getDayOfWeek().getValue(); // 今年是哪一年 int dayofYear = today.getDayOfYear(); // 根据字符串取: LocalDate endOfFeb = LocalDate.parse("2018-02-28"); // 严格按照yyyy-MM-dd验证,02写成2都不行,当然也有一个重载方法允许自己定义格式
3. 这些只是单纯的获取日期,可见其能够获取日期的种类多种多样,比原来的Date型好用太多,尤其是过去的Date型,月份计算居然是从0开始,不是一般的反人类
LocalDate更加强大的地方还没展示:
// 取本月第1天: LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth()); // 2018-04-01 // 取本月第2天: LocalDate secondDayOfThisMonth = today.withDayOfMonth(2); // 2018-04-02 // 取本月最后一天,再也不用计算是28,29,30还是31: LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth()); // 2018-04-30 // 取下一天: LocalDate firstDayOfNextMonth = lastDayOfThisMonth.plusDays(1); // 变成了2018-05-01 // 取2017年1月第一个周一: LocalDate firstMondayOf2017 = LocalDate.parse("2017-01-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)); // 2017-01-02
4.
//LocalDate的格式化不要用SimpleDateFormat的方法。 LocalDate today = LocalDate.now(); DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy年MM月dd日"); String text = today.format(formatters);
5. LocalTime只包含时间,获得当前时间
LocalTime now = LocalTime.now();
6.
JDBC 最新JDBC映射将把数据库的日期类型和Java 8的新类型关联起来: SQL -> Java -------------------------- date -> LocalDate time -> LocalTime timestamp -> LocalDateTime