java date 初始化指定时分秒及比较日期大小

java date 初始化指定时分秒及比较日期大小

Date now = new Date();
        /**
         * 注意:使用new Date(year, month, date)构造方法时,年份是绝对的年份(比如1999),月份是从0开始的(即0代表一月),
         * 日期是当月的某一天(1-31)。这种方式在现代Java代码中不推荐使用,因为它依赖于旧的日期时间API。
         */
//        Date d = new Date(2025,3,24,18,00,00);

        LocalDate ld3 = LocalDate.now();
        LocalTime ltt = LocalTime.of(18,0,0);
        LocalDateTime ldtt = ld3.atTime(ltt);

        Date d = localDateTimeToDate(ldtt);

        Date d2 = new Date();
        d2.setHours(18);
        d2.setMinutes(0);
        d2.setSeconds(0);

        /**
         * d2=Thu Apr 24 18:00:00 CST 2025
         * d=Thu Apr 24 18:00:00 CST 2025
         * now=Thu Apr 24 18:56:49 CST 2025
         * 订单开始了
         */
        System.out.println("d2=" + d2);
        System.out.println("d=" + d);
        System.out.println("now=" + now);
        if(now.after(d2)) {
            System.out.println("订单开始了");
        }else{
            System.out.println("订单还没开始");
        }


    public static Date localDateTimeToDate(LocalDateTime dateTime) {
        if(dateTime==null){
            return null;
        }
        return Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant());
    }

比较日期大小

import java.util.Date;
 
public class DateComparison {
    public static void main(String[] args) {
        Date date1 = new Date(119, 2, 15); // 月份从0开始,所以119年3月15日
        Date date2 = new Date(119, 2, 17); // 119年3月17日
 
        // 比较日期
        if (date1.before(date2)) {
            System.out.println("date1 在 date2 之前");
        } else if (date1.after(date2)) {
            System.out.println("date1 在 date2 之后");
        } else {
            System.out.println("date1 和 date2 相同");
        }
    }
}

 

posted on 2025-10-15 22:44  oktokeep  阅读(8)  评论(0)    收藏  举报