java判断两个时间是不是同一天的方法


在Java中,要判断两个时间是否在同一天,可以通过比较它们对应的年、月、日是否相同来实现。这里提供一个简洁的方法,使用`java.time`包中的`LocalDate`类(Java 8及以上版本)来实现这个功能:


import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class TimeUtils {

    /**
     * 判断两个时间是否在同一天
     * 
     * @param timeStr1 第一个时间的字符串表示,格式为yyyy-MM-dd
     * @param timeStr2 第二个时间的字符串表示,格式为yyyy-MM-dd
     * @return 如果两个时间在同一天,则返回true;否则返回false
     */
    public static boolean isSameDay(String timeStr1, String timeStr2) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate date1 = LocalDate.parse(timeStr1, formatter);
        LocalDate date2 = LocalDate.parse(timeStr2, formatter);
        
        return date1.equals(date2);
    }

    // 示例用法
    public static void main(String[] args) {
        String timeStr1 = "2024-09-14";
        String timeStr2 = "2024-09-14";
        System.out.println(isSameDay(timeStr1, timeStr2)); // 输出:true

        String timeStr3 = "2024-09-15";
        System.out.println(isSameDay(timeStr1, timeStr3)); // 输出:false
    }
}

这个方法`isSameDay`接收两个字符串参数,这两个字符串分别表示两个时间,格式为"yyyy-MM-dd"。方法内部,首先使用`DateTimeFormatter`定义时间的格式,然后使用`LocalDate.parse`方法将字符串解析为`LocalDate`对象。最后,通过比较这两个`LocalDate`对象是否相等来判断两个时间是否在同一天。

注意:这个方法假设输入的时间字符串格式严格符合"yyyy-MM-dd",如果格式不匹配,`LocalDate.parse`方法将抛出异常。在实际应用中,你可能需要添加额外的错误处理逻辑来处理这种情况。