Java8日期常用API

[复制链接]
发表于 2022-10-12 20:51:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Java8 LocalDate常用API

每日

获取当前日期
  1.         //获取当前系统所属时区的当前日期
  2.         LocalDate now = LocalDate.now();
  3.         //获取指定日期
  4.         LocalDate date = LocalDate.of(2022, 10, 20);
  5.         //获取指定时区的当前日期
  6.         ZoneId zoneId = ZoneId.of("Africa/Cairo");
  7.         LocalDate utc = LocalDate.now(zoneId);
  8.         //获取指定年份指定天数的日期
  9.         LocalDate ofYearDay = LocalDate.ofYearDay(2022, 100);
复制代码
获取日期所属年份、月份、日期,第几周、星期几
  1.         LocalDate date = LocalDate.now();
  2.         //获取日期所属年份
  3.         int year = date.getYear();
  4.         System.out.println("当前日期所属年份:  " + year );
  5.         //获取日期所属月份
  6.         int monthValue = date.getMonthValue();
  7.         System.out.println("当前日期所属月份:  " + monthValue );
  8.         //获取日期所属月份的是几号
  9.         int dayOfMonth = date.getDayOfMonth();
  10.         System.out.println("当前日期是几号:  " + dayOfMonth);
  11.         //获取日期在当前年份下是第几周
  12.         int week = date.get(WeekFields.ISO.weekOfYear());
  13.         System.out.println("当前日期是当前年份的第几周:  " + week);
  14.         //获取日期是星期几   value值从 1至7 即周一到周日
  15.         int dayOfWeek = date.getDayOfWeek().getValue();
  16.         System.out.println("当前日期是星期[" + dayOfWeek + "]");
复制代码

日期比较
  1.         LocalDate startDate = LocalDate.of(2022,11,1);
  2.         LocalDate endDate = LocalDate.of(2022,11,5);
  3.         //日期大小比较
  4.         if(startDate.isBefore(endDate)) {
  5.             System.out.println("2022-10-5 是在 2022-11-05之 【前】 的");
  6.         }
  7.         if(endDate.isAfter(startDate)) {
  8.             System.out.println("2022-11-5 是在 2022-10-05之 【后】 的");
  9.         }
  10.         if(endDate.isEqual(LocalDate.of(2022,11,5))) {
  11.             System.out.println("两个日期相等");
  12.         }
  13.         //获取两个仅相差一月以内的日期相差多少天  注意: 仅适用于两个日期相差一个月以内
  14.         int result = Period.between(startDate, endDate).getDays();
  15.         // 区分正负   如果要取绝对值  可用  Math.abs();
  16.         if(result > 0) {
  17.             System.out.println("endDate 大于StartDate");
  18.         }
  19.         if(result < 0) {
  20.             System.out.println("endDate 小于StartDate");
  21.         }
  22.         //获取两个日期相差多少天    推荐使用
  23.         long day = endDate.toEpochDay() - startDate.toEpochDay();
复制代码

每周

根据周获取日期
  1.         //获取指定周,指定周几
  2.         int year = 2022;   // 2022年
  3.         int week  = 11;    // 11周
  4.         DayOfWeek dayOfWeek = DayOfWeek.MONDAY;   // 周一
  5.         //周数小于10在前面补个0
  6.         String numStr = week < 10 ? "0" + week : String.valueOf(week);
  7.         //2019-W01-01获取第一周的周一日期,2019-W02-07获取第二周的周日日期
  8.         String weekDate = String.format("%s-W%s-%s", year, numStr, dayOfWeek.getValue());
  9.         LocalDate date = LocalDate.parse(weekDate, DateTimeFormatter.ISO_WEEK_DATE);
  10.         System.out.println(date);
复制代码

每月
  1.         int year = 2022;
  2.         int month = 2;
  3.         // 获取指定年份的指定月份有多少天
  4.         LocalDate date = LocalDate.of(year,month,1);
  5.         int lengthOfMonth = date.lengthOfMonth();
  6.         System.out.println("2022年2月有" + lengthOfMonth + "天");
  7.         // 获取指定月的最后一天
  8.         LocalDate monthLastDay = LocalDate.of(year, month, lengthOfMonth);
复制代码

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表