import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class DateUtils {
public static List<TimeRange> get24HourTimeRanges(Date date) {
List<TimeRange> timeRanges = new ArrayList<>();
LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), java.time.ZoneId.systemDefault());
for (int i = 0; i < 24; i++) {
int hour = i % 24; // 使用模运算确保小时数在0到23之间
LocalDateTime startTime = localDateTime.withHour(hour).withMinute(0).withSecond(0).withNano(0);
LocalDateTime endTime = localDateTime.withHour(hour).withMinute(59).withSecond(59).withNano(999999999);
timeRanges.add(new TimeRange(startTime, endTime));
}
return timeRanges;
}
public static class TimeRange {
private LocalDateTime startTime;
private LocalDateTime endTime;
public TimeRange(LocalDateTime startTime, LocalDateTime endTime) {
this.startTime = startTime;
this.endTime = endTime;
}
public LocalDateTime getStartTime() {
return startTime;
}
public LocalDateTime getEndTime() {
return endTime;
}
@Override
public String toString() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
return startTime.format(formatter) + " - " + endTime.format(formatter);
}
}
public static void main(String[] args) {
Date inputDate = new Date(); // 你可以传入任意的日期
List<TimeRange> timeRanges = get24HourTimeRanges(inputDate);
for (TimeRange timeRange : timeRanges) {
// LocalDateTime转Date
Date start = Date.from(timeRange.getStartTime().atZone(ZoneId.systemDefault()).toInstant());
Date end = Date.from(timeRange.getEndTime().atZone(ZoneId.systemDefault()).toInstant());
System.out.println(start);
System.out.println(end);
System.out.println(dateRange);
}
}
}
Java获取指定日期24小时段开始时间和结束时间
于 2024-01-09 17:28:50 首次发布