java中获取本月的月末
时间: 2024-01-28 12:02:53 浏览: 27
您好!要获取当前月的月末日期,可以使用如下代码:
```java
Calendar calendar = Calendar.getInstance(); // 获取当前日期
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 设置为本月最后一天
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置日期格式
String lastDayOfMonth = sdf.format(calendar.getTime()); // 格式化输出
System.out.println(lastDayOfMonth); // 输出本月最后一天日期
```
其中,`Calendar.getInstance()` 获取当前日期实例;`calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH))` 将日期设置为本月最后一天;`SimpleDateFormat` 用于设置日期格式,`sdf.format(calendar.getTime())` 用于将日期格式化输出。
相关问题
LocalDateTime 获取本月月初和本月月末
要获取本月的月初和月末日期,可以使用 `LocalDateTime` 类的方法来计算。
首先,你需要获取当前的日期和时间,可以使用 `LocalDateTime.now()` 方法获取当前的 `LocalDateTime` 对象。然后,使用 `withDayOfMonth(1)` 方法将日期设置为本月的第一天,使用 `with(TemporalAdjusters.lastDayOfMonth())` 方法将日期设置为本月的最后一天。
下面是一个示例代码:
```java
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.TemporalAdjusters;
public class Main {
public static void main(String[] args) {
// 获取当前日期和时间
LocalDateTime now = LocalDateTime.now();
// 获取本月的月初日期
LocalDateTime firstDayOfMonth = now.withDayOfMonth(1);
System.out.println("本月月初:" + firstDayOfMonth);
// 获取本月的月末日期
LocalDateTime lastDayOfMonth = now.with(TemporalAdjusters.lastDayOfMonth());
System.out.println("本月月末:" + lastDayOfMonth);
}
}
```
运行上面的代码,你将会得到类似以下输出:
```
本月月初:2022-03-01T15:31:45.123456789
本月月末:2022-03-31T15:31:45.123456789
```
这样,你就可以使用 `firstDayOfMonth` 和 `lastDayOfMonth` 变量来获取本月的月初和月末日期了。
如何用java获取当前日期的下两个月末
可以使用Java的日期时间类来实现。具体步骤如下:
1. 获取当前日期
```java
LocalDate currentDate = LocalDate.now();
```
2. 获取下两个月的月份
```java
int nextTwoMonth = currentDate.getMonthValue() + 2;
```
需要注意的是,如果当前月份是11月或12月,那么下两个月就会跨年,此时需要对年份进行调整。
```java
int year = currentDate.getYear();
if (nextTwoMonth > 12) {
nextTwoMonth -= 12;
year++;
}
```
3. 获取下两个月末的日期
```java
LocalDate nextTwoMonthEnd = LocalDate.of(year, nextTwoMonth, 1)
.with(TemporalAdjusters.lastDayOfMonth());
```
最后,将日期格式化为指定的字符串即可。
```java
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String nextTwoMonthEndStr = nextTwoMonthEnd.format(formatter);
```
完整代码如下:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
public class Main {
public static void main(String[] args) {
LocalDate currentDate = LocalDate.now();
int nextTwoMonth = currentDate.getMonthValue() + 2;
int year = currentDate.getYear();
if (nextTwoMonth > 12) {
nextTwoMonth -= 12;
year++;
}
LocalDate nextTwoMonthEnd = LocalDate.of(year, nextTwoMonth, 1)
.with(TemporalAdjusters.lastDayOfMonth());
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String nextTwoMonthEndStr = nextTwoMonthEnd.format(formatter);
System.out.println(nextTwoMonthEndStr);
}
}
```
输出结果为当前日期的下两个月末,例如今天是2022年8月1日,则输出结果为2022-10-31。