您的位置:

使用LocalDate获取前一天及其相关内容

一、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