根据 Date类型的年月 查询当年当月的第一天和最后一天的日期,返回yyyy-MM-dd HH:mm:ss
时间: 2024-09-20 07:03:32 浏览: 41
Oracle各种日期计算方法定义.pdf
如果你有一个`Date`类型的对象,它通常表示的是具体的日期和时间点,而不是仅仅年月。为了从`Date`转换到年月并查询同年同月的第一天和最后一天,你需要先将其转换为`LocalDate`对象,然后按照之前的方法操作。这里是一个步骤说明:
1. 首先,我们需要一个`Date`实例。
2. 使用`java.util.Calendar`或`java.time.LocalDate`类的`set()`方法设置年月日为给定的值。
3. 然后,找到该年月的第一天和最后一天。
以下是使用`Calendar`的示例:
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[] args) {
// 假设你已经有了一个Date类型的变量date
Date date = ...; // 填充你的日期
// 创建一个Calendar对象,并设置为给定的日期
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH); // 注意,月份是从0开始的,所以+1得到实际的月份
// 设置为当年的同月第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
Date firstDayOfMonth = calendar.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String firstDayStr = sdf.format(firstDayOfMonth);
// 设置为同月最后一天
calendar.add(Calendar.MONTH, 1);
calendar.set(Calendar.DAY_OF_MONTH, -1); // 减一,因为我们只关心最后一天
Date lastDayOfMonth = calendar.getTime();
String lastDayStr = sdf.format(lastDayOfMonth);
// 输出结果
System.out.println("First day: " + firstDayStr);
System.out.println("Last day: " + lastDayStr);
}
}
```
阅读全文