java获取当月开始时间和当月结束时间时间戳
时间: 2024-12-08 15:18:55 浏览: 34
在Java中,获取当月开始时间和当月结束时间的时间戳,你可以使用`java.time`包中的`MonthDay`类和`ZonedDateTime`类。下面是一个简单的示例:
```java
import java.time.LocalDate;
import java.time.MonthDay;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class DateUtils {
public static long getMonthlyStartTimestamp() {
LocalDate today = LocalDate.now();
MonthDay monthDay = MonthDay.of(today.getMonth(), 1); // 获取本月第一天
ZonedDateTime startOfMonth = monthDay.atStartOfDay(ZoneId.systemDefault()); // 使用系统默认时区
return startOfMonth.toInstant().toEpochMilli(); // 转换为毫秒级时间戳
}
public static long getMonthlyEndTimestamp() {
LocalDate today = LocalDate.now();
int daysInMonth = today.lengthOfMonth(); // 当前月份的天数
MonthDay monthDay = MonthDay.of(today.getMonth(), daysInMonth);
ZonedDateTime endOfMonth = monthDay.atEndOfDay(ZoneId.systemDefault());
return endOfMonth.toInstant().toEpochMilli(); // 转换为毫秒级时间戳
}
}
```
在这个例子中,`getMonthlyStartTimestamp()`方法返回的是当月的第一天0点的时间戳,而`getMonthlyEndTimestamp()`方法返回的是当月最后一天24小时结束的时间戳。
阅读全文