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 相同"); } } }