我是使用Netbeans进行Java编程的新手。我已经将jCalendar添加到我的GUI中以选择日期。
我在事件中输入了这一行 - > jCalendar按钮的“属性更改”代码,
Date date=jcalendar1.getDate();
这样我就可以在更改时立即获得日期。我是对的吗?
目的: 我想找到从上面这个日期的下午(中午12点)到现在(当前日期和时间)的差异(以毫秒为单位)。 有几个程序显示日期差异,但所有日期都有硬编码和新手我不知道如何用被挑选的日期替换它。 (我也很困惑对象日期和日历,无法理解它们之间的区别)。例如,这里有一块:
if (day == null) day = new Date();
cal.setTime(day);
cal.set(Calendar.HOUR_OF_DAY, 12);
cal.set(Calendar.MINUTE, cal.getMinimum(Calendar.MINUTE));
cal.set(Calendar.SECOND, cal.getMinimum(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, cal.getMinimum(Calendar.MILLISECOND));
return cal.getTime();
这一天是Date对象。如何将cal
(日历对象)链接到它以输入时间。如何首先定义cal对象?我如何在您的计划中使用此或其他任何内容。一段带有详细注释的代码会更有帮助
谢谢!
答案 0 :(得分:0)
而不是使用:
Date day = new Date();
使用:
Calendar cal = Calendar.getInstance();
cal.set (...);
Date date = new Date(cal.getTimeInMillis());
值得将这些东西抽象到DateUtils类或类似的东西,如下所示:
public static Date create(int year, int month, int day, int hour, int minute, int second) {
return new Date(getTimeInMillis(year, month, day, hour, minute, second));
}
public static long getTimeInMillis(int year, int month, int day, int hour, int minute, int second, int milliseconds) {
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(year, month, day, hour, minute, second);
cal.set(Calendar.MILLISECOND, milliseconds);
return cal.getTimeInMillis();
}