一、LocalDate获取前一天日期
LocalDate是Java 8中的一个日期类,我们可以使用它获取前一天的日期。
LocalDate today = LocalDate.now();
LocalDate yesterday = today.minusDays(1);
System.out.println("今天日期:" + today);
System.out.println("昨天日期:" + yesterday);
上面的代码首先获取当前日期,然后通过minusDays(1)方法获取前一天的日期。
运行以上代码,得到的结果如下:
今天日期:2021-05-18
昨天日期:2021-05-17
二、LocalDate获取下周一
除了获取前一天的日期,我们还可以使用LocalDate获取下周一的日期。
LocalDate today = LocalDate.now();
LocalDate nextMonday = today.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
System.out.println("今天日期:" + today);
System.out.println("下周一日期:" + nextMonday);
上面的代码首先获取当前日期,然后通过with()方法和TemporalAdjusters.next()方法获取下周一的日期。
运行以上代码,得到的结果如下:
今天日期:2021-05-18
下周一日期:2021-05-24
三、LocalDateTime获取前一天
除了使用LocalDate,我们还可以使用LocalDateTime获取前一天的日期和时间。
LocalDateTime now = LocalDateTime.now();
LocalDateTime yesterday = now.minusDays(1);
System.out.println("当前日期时间:" + now);
System.out.println("昨天日期时间:" + yesterday);
上面的代码首先获取当前日期和时间,然后通过minusDays(1)方法获取前一天的日期和时间。
运行以上代码,得到的结果如下:
当前日期时间:2021-05-18T15:32:23.675703800
昨天日期时间:2021-05-17T15:32:23.675703800
四、LocalDate获取月份
我们可以使用LocalDate获取当前日期所在的月份。
LocalDate today = LocalDate.now();
int month = today.getMonthValue();
System.out.println("当前月份:" + month);
上面的代码首先获取当前日期,然后使用getMonthValue()方法获取当前日期所在的月份。
运行以上代码,得到的结果如下:
当前月份:5
五、LocalDate获取8位时间
我们可以使用LocalDate获取8位时间,即年月日,格式为yyyyMMdd。
LocalDate today = LocalDate.now();
String dateStr = today.format(DateTimeFormatter.BASIC_ISO_DATE);
System.out.println("当前8位时间:" + dateStr);
上面的代码首先获取当前日期,然后使用format()方法和DateTimeFormatter.BASIC_ISO_DATE获取当前日期的8位时间。
运行以上代码,得到的结果如下:
当前8位时间:20210518
六、LocalDate获取年月日
除了获取8位时间,我们还可以使用LocalDate获取年月日。
LocalDate today = LocalDate.now();
int year = today.getYear();
int month = today.getMonthValue();
int day = today.getDayOfMonth();
System.out.println("当前日期:" + year + "-" + month + "-" + day);
上面的代码首先获取当前日期,然后分别使用getYear()、getMonthValue()和getDayOfMonth()方法获取年、月和日。
运行以上代码,得到的结果如下:
当前日期:2021-5-18
七、LocalDate获取当月最后一天
我们可以使用LocalDate获取当月的最后一天。
LocalDate today = LocalDate.now();
int lastDay = today.lengthOfMonth();
LocalDate endOfMonth = today.withDayOfMonth(lastDay);
System.out.println("当前日期:" + today);
System.out.println("当月最后一天:" + endOfMonth);
上面的代码首先获取当前日期,然后使用lengthOfMonth()方法获取当前月份的天数,最后通过withDayOfMonth()方法获取当月的最后一天。
运行以上代码,得到的结果如下:
当前日期:2021-05-18
当月最后一天:2021-05-31
八、LocalDate获取星期几
我们可以使用LocalDate获取当前日期是星期几。
LocalDate today = LocalDate.now();
DayOfWeek dayOfWeek = today.getDayOfWeek();
System.out.println("当前日期:" + today);
System.out.println("星期几:" + dayOfWeek);
上面的代码首先获取当前日期,然后使用getDayOfWeek()方法获取当前日期是星期几。
运行以上代码,得到的结果如下:
当前日期:2021-05-18
星期几:TUESDAY
九、LocalDateTime减一天
除了获取前一天的日期和时间,我们还可以使用LocalDateTime减一天。
LocalDateTime now = LocalDateTime.now();
LocalDateTime yesterday = now.minusDays(1);
System.out.println("当前日期时间:" + now);
System.out.println("前一天日期时间:" + yesterday);
上面的代码首先获取当前日期和时间,然后通过minusDays(1)方法获取前一天的日期和时间。
运行以上代码,得到的结果如下:
当前日期时间:2021-05-18T15:32:23.675703800
前一天日期时间:2021-05-17T15:32:23.675703800
十、LocalDate获取毫秒数
最后,我们可以使用LocalDate获取当前日期的毫秒数。
LocalDate today = LocalDate.now();
Instant instant = today.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
long millis = instant.toEpochMilli();
System.out.println("当前日期的毫秒数:" + millis);
上面的代码首先获取当前日期,然后使用atStartOfDay()方法将其转换为LocalDateTime,再使用atZone()方法将其转换为带时区的ZonedDateTime,最后使用toInstant()方法将其转换为Instant格式的时间,并使用toEpochMilli()方法获取毫秒数。
运行以上代码,得到的结果如下:
当前日期的毫秒数:1621324800000