侧边栏壁纸
博主头像
鲨鱼辣椒博主等级

敢想敢干

  • 累计撰写 32 篇文章
  • 累计创建 32 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

LocalDate 和LocalDateTime 所有的API集合

鲨鱼辣椒
2024-10-23 / 0 评论 / 0 点赞 / 70 阅读 / 849 字 / 正在检测是否收录...

一、LocalDateTime API

LocalDateTime 表示日期和时间(精确到秒),不包含时区信息。

1.创建实例的方法

  • now(): 获取当前日期时间。
LocalDateTime.now();

  • of(int year, int month, int dayOfMonth, int hour, int minute): 指定年月日时分创建实例。
LocalDateTime.of(2024, 10, 23, 12, 30);

  • parse(CharSequence text): 将字符串解析为 LocalDateTime.
LocalDateTime.parse("2024-10-23T12:30");

2.获取日期时间属性的方法

  • getYear(): 获取年份。
  • getMonth(): 获取月份(返回 Month 枚举)。
  • getMonthValue(): 获取月份(1-12)。
  • getDayOfMonth(): 获取当月的天数。
  • getDayOfWeek(): 获取星期几。
  • getDayOfYear(): 获取当年的天数。
  • getHour(): 获取小时。
  • getMinute(): 获取分钟。
  • getSecond(): 获取秒数。
  • getNano(): 获取纳秒数。

3.日期时间运算方法

  • plusYears(long yearsToAdd): 增加年份。
  • plusMonths(long monthsToAdd): 增加月份。
  • plusDays(long daysToAdd): 增加天数。
  • plusHours(long hoursToAdd): 增加小时。
  • plusMinutes(long minutesToAdd): 增加分钟。
  • minusWeeks(long weeksToSubtract): 减少星期数。

4.日期时间比较方法

  • isBefore(LocalDateTime other): 判断是否在另一个日期时间之前。
  • isAfter(LocalDateTime other): 判断是否在另一个日期时间之后。
  • isEqual(LocalDateTime other): 判断是否相同。

5.其他常用方法

format(DateTimeFormatter formatter): 格式化日期时间。
atZone(ZoneId zone): 将 LocalDateTime 转换为 ZonedDateTime。
toLocalDate(): 获取日期部分。
toLocalTime(): 获取时间部分。

二、LocalDate API

LocalDate 表示不带时间的日期。

1.创建实例的方法

  • now(): 获取当前日期。
LocalDate.now();
  • of(int year, int month, int dayOfMonth): 指定年月日创建实例。
LocalDate.of(2024, 10, 23);
  • parse(CharSequence text): 将字符串解析为 LocalDate。
LocalDate.parse("2024-10-23");

2.获取日期属性的方法

  • getYear(): 获取年份。
  • getMonth(): 获取月份(返回 Month 枚举)。
  • getMonthValue(): 获取月份(1-12)。
  • getDayOfMonth(): 获取当月的天数。
  • getDayOfWeek(): 获取星期几。
  • getDayOfYear(): 获取当年的天数。
  • lengthOfMonth(): 获取当月的天数。
  • lengthOfYear(): 获取当年的天数。

3.日期运算方法

  • plusYears(long yearsToAdd): 增加年份。
  • plusMonths(long monthsToAdd): 增加月份。
  • plusDays(long daysToAdd): 增加天数。
  • minusYears(long yearsToSubtract): 减少年份。
  • minusMonths(long monthsToSubtract): 减少月份。

4.日期比较方法

  • isBefore(LocalDate other): 判断是否在另一个日期之前。
  • isAfter(LocalDate other): 判断是否在另一个日期之后。
  • isEqual(LocalDate other): 判断是否相同。

5.其他常用方法

  • format(DateTimeFormatter formatter): 格式化日期。
  • atStartOfDay(): 将 LocalDate 转换为当天的 LocalDateTime。
  • withDayOfMonth(int dayOfMonth): 修改当月的天数。
  • withMonth(int month): 修改月份。

三、延伸方法

获取一年的第一天


LocalDate firstDayOfYear = LocalDate.now().withDayOfYear(1);

获取一年的最后一天

LocalDate lastDayOfYear = LocalDate.now().withDayOfYear(LocalDate.now().lengthOfYear());

获取一个月的第一天

LocalDate firstDayOfMonth = LocalDate.now().withDayOfMonth(1);

获取一个月的最后一天


LocalDate lastDayOfMonth = LocalDate.now().withDayOfMonth(LocalDate.now().lengthOfMonth());

获取下一个星期一的日期

LocalDate nextMonday = LocalDate.now().with(TemporalAdjusters.next(DayOfWeek.MONDAY));

获取当前日期所在星期的周一

LocalDate currentWeekMonday = LocalDate.now().with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));

获取当前日期所在星期的周日


LocalDate currentWeekSunday = LocalDate.now().with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));

获取下一个月的第一天

LocalDate firstDayOfNextMonth = LocalDate.now().plusMonths(1).withDayOfMonth(1);

获取下一个月的最后一天

LocalDate lastDayOfNextMonth = LocalDate.now().plusMonths(1).withDayOfMonth(LocalDate.now().plusMonths(1).lengthOfMonth());

获取下一个季度的第一天

LocalDate now = LocalDate.now();
int currentQuarter = (now.getMonthValue() - 1) / 3 + 1;
LocalDate firstDayOfNextQuarter = now.withMonth((currentQuarter * 3) % 12 + 1).withDayOfMonth(1);
0

评论区