Java 中实现获取一个包含时分秒的日期在日期列表里面最接近的日期的示例代码。这里我们将使用 Java 8 引入的新日期时间 API(java.time
包)中的LocalDateTime
类来处理包含时分秒的日期时间。
import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.List; public class DateTimeUtils { public static LocalDateTime findClosestDateTime(LocalDateTime targetDateTime, List<LocalDateTime> dateTimeList) { LocalDateTime closestDateTime = null; long minDiff = Long.MAX_VALUE; for (LocalDateTime dateTime : dateTimeList) { long diff = Math.abs(ChronoUnit.SECONDS.between(dateTime, targetDateTime)); if (diff < minDiff) { minDiff = diff; closestDateTime = dateTime; } } return closestDateTime; } public static void main(String[] args) { List<LocalDateTime> dateTimeList = new ArrayList<>(); dateTimeList.add(LocalDateTime.of(2024, 11, 1, 10, 30, 0)); dateTimeList.add(LocalDateTime.of(2024, 11, 3, 14, 15, 30)); dateTimeList.add(LocalDateTime.of(2024, 11, 5, 9, 45, 0)); LocalDateTime targetDateTime = LocalDateTime.of(2024, 11, 4, 12, 0, 0); LocalDateTime closestDateTime = findClosestDateTime(targetDateTime, dateTimeList); System.out.println("最接近的日期时间是: " + closestDateTime); } }