在jdk1.7以前,我们只能使用Date、Calendar来处理日期类的需求,在jkd1.8以后我们多了一个选择,那就是LocalDate和LocalTime。不得不说新引入的两个api太方便实用了。
下面我来介绍一下这两个类中常用方法的用法。
LocalDate
方法 | 说明 |
---|---|
LocalDate.now() | 获取当前日期 |
LocalDate.of(int year, int month, int dayOfMonth) | 根据参数设置日期,参数分别为年,月,日 |
localDate.getDayOfMonth() | 获取当前日期所在月份的第几天 |
localDate.getDayOfWeek() | 获取当前日期所在周的第几天 |
localDate.getDayOfYear() | 获取当前日期所在年份的第几天 |
localDate.getMonth() | 获取当前日期的月份的英文名称 |
localDate.getMonthValue() | 获取当前日期的月份数值 |
localDate.lengthOfMonth() | 获取当前日期所在月份有几天 |
localDate.lengthOfYear() | 获取当前日期所在年份有几天 |
localDate.isLeapYear() | 获取当前日期是否属于闰年 |
localDate.withDayOfMonth(int dayOfMonth) | 将日期替换为当月的第几天 |
localDate.withDayOfYear(int dayOfYear) | 将日期替换为当年的第几天 |
localDate.withMonth(int month) | 替换月份 |
localDate.withYear(int year) | 替换年份 |
localDate.minusDays(long days) | 将当前日期减去n天 |
localDate.minusWeeks(long weeks) | 将当前日期减去n周 |
localDate.minusMonths(long months) | 将当前日期减去n月 |
localDate.minusYears(long years) | 将当前日期减去n年 |
localDate.plusDays(long days) | 当前日期加n天 |
localDate.plusWeeks(long weeks) | 当前日期加n周 |
localDate.plusMonths(long months) | 当前日期加n月 |
localDate.plusYears(long years) | 当前日期加n年 |
LocalTime
方法 | 说明 |
---|---|
LocalTime.now() | 获取当前时间 |
LocalTime.of(int hour, int minute) | 根据参数设置时间 时 分 |
LocalTime.of(int hour, int minute, int second) | 根据参数设置时间 时 分 秒 |
localTime.getHour() | 获取当前小时 |
localTime.getMinute() | 获取当前分钟 |
localTime.getSecond() | 获取当前秒 |
localTime.withHour(int hour) | 修改小时 |
localTime.withMinute(int minute) | 修改分 |
localTime.withSecond(int second) | 修改秒 |
localTime.minusHours(long hours) | 减去n小时 |
localTime.minusMinutes(long minutes) | 减去n分钟 |
localTime.minusSeconds(long seconds) | 减去n秒 |
localTime.plusHours(long hours) | 增加n小时 |
localTime.plusMinutes(long minutes) | 增加n分钟 |
localTime.plusSeconds(long seconds) | 增加n秒 |
日期+时间组合
由以上两个方法表我们可以看出 LocalDate主要是用来操作日期,LocalTime用来操作时间的。
如果我们需要同时操作时间和日期的时候该怎么办呢?
LocalDate.atTime()方法提供了我们日期+时间的操作api。
如我们获取当前日期+时间
LocalDateTime date = LocalDateTime.now();
System.out.println(date);
LocalDateTime date1 = LocalDate.of(2019, 9, 27).atTime(7, 45, 50);
System.out.println(date1);