用java查询每个月的第一天和最后一天的日期,并且把日期转换为时间戳
时间: 2023-02-09 07:58:43 浏览: 124
在 Java 中可以使用 `Calendar` 类来查询每个月的第一天和最后一天的日期。
要查询某个月的第一天,可以这样做:
```java
Calendar cal = Calendar.getInstance();
// 设置日历的月份
cal.set(Calendar.MONTH, month - 1);
// 设置日历的日期为该月的第一天
cal.set(Calendar.DATE, 1);
// 获取该月的第一天的日期
Date firstDayOfMonth = cal.getTime();
```
要查询某个月的最后一天,可以这样做:
```java
Calendar cal = Calendar.getInstance();
// 设置日历的月份
cal.set(Calendar.MONTH, month - 1);
// 设置日历的日期为该月的最后一天
cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE));
// 获取该月的最后一天的日期
Date lastDayOfMonth = cal.getTime();
```
要将日期转换为时间戳,可以使用 `java.util.Date` 类的 `getTime()` 方法。例如:
```java
long timestamp = date.getTime();
```
请注意,Java 中的时间戳以毫秒为单位。
相关问题
java获取当月第一天和最后一天,当年第一天和最后一天,上个月第一天和最后一天,去年第一天和最后一天,并用Long类型时间戳表示结果
要获取Java中的日期信息,可以使用`java.util.Calendar`类或者`java.time.LocalDate`类。下面是使用`java.util.Calendar`类的示例代码来获取所需的日期信息,并将结果转换为Long类型的时间戳表示:
```java
import java.util.Calendar;
public class DateUtils {
public static void main(String[] args) {
// 获取当前日期
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1; // 月份从0开始,需要加1
int day = calendar.get(Calendar.DAY_OF_MONTH);
// 获取当月第一天和最后一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
long firstDayOfMonth = calendar.getTimeInMillis();
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
long lastDayOfMonth = calendar.getTimeInMillis();
// 获取当年第一天和最后一天
calendar.set(Calendar.MONTH, 0);
calendar.set(Calendar.DAY_OF_MONTH, 1);
long firstDayOfYear = calendar.getTimeInMillis();
calendar.set(Calendar.MONTH, 11);
calendar.set(Calendar.DAY_OF_MONTH, 31);
long lastDayOfYear = calendar.getTimeInMillis();
// 获取上个月第一天和最后一天
if (month == 1) {
calendar.set(Calendar.YEAR, year - 1);
calendar.set(Calendar.MONTH, 11);
} else {
calendar.set(Calendar.MONTH, month - 2);
}
calendar.set(Calendar.DAY_OF_MONTH, 1);
long firstDayOfLastMonth = calendar.getTimeInMillis();
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
long lastDayOfLastMonth = calendar.getTimeInMillis();
// 获取去年第一天和最后一天
calendar.set(Calendar.YEAR, year - 1);
calendar.set(Calendar.MONTH, 0);
calendar.set(Calendar.DAY_OF_MONTH, 1);
long firstDayOfLastYear = calendar.getTimeInMillis();
calendar.set(Calendar.MONTH, 11);
calendar.set(Calendar.DAY_OF_MONTH, 31);
long lastDayOfLastYear = calendar.getTimeInMillis();
// 输出结果
System.out.println("当月第一天:" + firstDayOfMonth);
System.out.println("当月最后一天:" + lastDayOfMonth);
System.out.println("当年第一天:" + firstDayOfYear);
System.out.println("当年最后一天:" + lastDayOfYear);
System.out.println("上个月第一天:" + firstDayOfLastMonth);
System.out.println("上个月最后一天:" + lastDayOfLastMonth);
System.out.println("去年第一天:" + firstDayOfLastYear);
System.out.println("去年最后一天:" + lastDayOfLastYear);
}
}
```
java8获取本周本月第一天和最后一天的时间戳
可以使用Java 8中的LocalDate类和TemporalAdjusters类来获取本周和本月的第一天和最后一天的时间戳。具体实现方法如下:
1. 获取本周第一天和最后一天的时间戳:
```
LocalDate today = LocalDate.now();
LocalDate firstDayOfWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
LocalDate lastDayOfWeek = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
long firstDayOfWeekTimestamp = firstDayOfWeek.atStartOfDay(ZoneOffset.ofHours(8)).toInstant().toEpochMilli();
long lastDayOfWeekTimestamp = lastDayOfWeek.atTime(LocalTime.MAX).atZone(ZoneOffset.ofHours(8)).toInstant().toEpochMilli();```
其中,ZoneOffset.ofHours(8)表示东八区,toInstant().toEpochMilli()表示将LocalDate转换为时间戳。
2. 获取本月第一天和最后一天的时间戳:
```
LocalDate today = LocalDate.now();
LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth());
long firstDayOfMonthTimestamp = firstDayOfMonth.atStartOfDay(ZoneOffset.ofHours(8)).toInstant().toEpochMilli();
long lastDayOfMonthTimestamp = lastDayOfMonth.atTime(LocalTime.MAX).atZone(ZoneOffset.ofHours(8)).toInstant().toEpochMilli();
```
其中,firstDayOfMonth()表示获取本月第一天,lastDayOfMonth()表示获取本月最后一天,其他部分与获取本周时间戳相同。
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)