date获取月初第一天和月末最后一天java
时间: 2024-01-30 13:02:05 浏览: 115
好的,我可以回答这个问题。获取月初第一天和月末最后一天的Java代码如下:
```
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class DateUtils {
public static LocalDate getFirstDayOfMonth(LocalDate date) {
return date.with(TemporalAdjusters.firstDayOfMonth());
}
public static LocalDate getLastDayOfMonth(LocalDate date) {
return date.with(TemporalAdjusters.lastDayOfMonth());
}
}
```
你可以使用这个工具类,传入一个Java `LocalDate`对象,就可以获取该日期所在月份的月初第一天和月末最后一天。
相关问题
SQL计算既定日期的月初第一天和月末最后一天
在SQL中,计算特定日期的月初第一天和月末最后一天通常涉及到使用`DATE_TRUNC`或`DATEADD`函数,这取决于你使用的数据库管理系统。以下是两种常见情况下的示例:
1. **MySQL** 或 **PostgreSQL**: 使用 `DATE_TRUNC` 函数,可以轻松地获取月份的第一天和最后一天。
```sql
-- 获取指定日期的月初第一天
SELECT DATE_TRUNC('month', '2023-03-15') AS first_day;
-- 获取指定日期的月末最后一天
SELECT DATE_TRUNC('day', '2023-03-15') + INTERVAL 1 DAY - INTERVAL '1 second' AS last_day;
```
2. **Oracle**: 使用 `TRUNC` 和 `ADD_MONTHS` 函数。
```sql
-- 获取指定日期的月初第一天
SELECT TRUNC(SYSDATE, 'MONTH') AS first_day;
-- 获取指定日期的月末最后一天
SELECT ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'), 1) - 1 AS last_day;
```
3. **SQL Server**: 使用 `DATEPART` 和 `DATEADD`。
```sql
-- 获取指定日期的月初第一天
SELECT DATEADD(month, DATEDIFF(month, 0, '2023-03-15'), 0) AS first_day;
-- 获取指定日期的月末最后一天
SELECT DATEADD(day, -1, DATEADD(month, DATEDIFF(month, 0, '2023-03-15') + 1, 0)) AS last_day;
```
java 获取当月第一天和最后一天
获取当月第一天的Java代码:
```java
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 1); // 设置为当月第一天
Date firstDayOfMonth = calendar.getTime();
```
获取当月最后一天的Java代码:
```java
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 设置为当月最后一天
Date lastDayOfMonth = calendar.getTime();
```
或者使用Java 8的新日期时间API:
```java
LocalDate now = LocalDate.now();
LocalDate firstDayOfMonth = now.withDayOfMonth(1);
LocalDate lastDayOfMonth = now.withDayOfMonth(now.lengthOfMonth());
```
阅读全文
相关推荐











