Calendar.getTime() 直接返回 java.util.Date 实例,无需转换;它将 Calendar 当前时间封装为 Date,注意月份从 0 开始,Java 8+ 推荐使用 Instant 或 LocalDateTime 替代。
Calendar.getTime() 方法本身就是用来获取 Date 对象的,它直接返回一个 Date 实例,不需要额外转换。
该方法将当前 Calendar 所表示的时间点(年月日时分秒等)封装成一个 Date 对象。只要 Calendar 已正确设置时间,调用它就能拿到对应的 Date。
java.util.Date,无需强制类型转换Calendar 是可变对象,修改它会影响后续 getTime() 的结果Date date = calendar.getTime();
比如从当前时间创建 Date:
Calendar cal = Calendar.getInstance();Date now = cal.getTime(); // 直接得到当前时间的 Date或者设置特定时间后再获取:
立即学习“Java免费学习笔记(深入)”;
cal.set(2025, Calendar.MARCH, 15, 10, 30, 0);Date target = cal.getTime(); // 得到 2025年3月15日 10:30:00 的 Date虽然简单,但容易出错的地方有:
Calendar 的月份从 0 开始(Calendar.JANUARY = 0),别写成 1set(...) 或初始化过,否则可能拿到默认/旧时间LocalDateTime / ZonedDateTime 替代 Calendar 和 Date
如果项目支持 Java 8+,建议用新时间 API:
Instant instant = calendar.toInstant();Date date = Date.from(instant); // 还是转成 Date,但更清晰LocalDateTime.of(2025, 3, 15, 10, 30) 避免 Calendar