date获取月初第一天和月末最后一天java
时间: 2024-01-30 10:02:05 浏览: 107
好的,我可以回答这个问题。获取月初第一天和月末最后一天的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的Calendar类和SimpleDateFormat类来实现。
以下是获取上月第一天和最后一天的代码:
```
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.MONTH, -1);
calendar.set(Calendar.DAY_OF_MONTH, 1);
Date firstDay = calendar.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("上月第一天:" + sdf.format(firstDay));
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
Date lastDay = calendar.getTime();
System.out.println("上月最后一天:" + sdf.format(lastDay));
}
}
```
上面的代码中,首先获取当前日期并将其设置为Calendar对象的时间,然后使用`add`方法将月份减去1,即得到上个月的日期。接着使用`set`方法将该日期设置为该月的第一天,即`DAY_OF_MONTH`设置为1。然后使用`getTime`方法获取Date类型的日期,最后使用SimpleDateFormat格式化输出。
同样的方式,我们可以通过`set`方法将该日期设置为该月的最后一天,即`DAY_OF_MONTH`设置为该月的最大值,然后输出即可。
阅读全文