日期采摘和寻找差异(Date picking and finding difference)

2019-09-16 22:27发布

我使用NetBeans新手Java编程。 我已经加入jCalendar到我的GUI来选择一个日期。

我在活动进入了这一行 - > jCalendar按钮的“属性修改”的代码,

Date date=jcalendar1.getDate(); 

所以,我得马上当它被更改的日期。 我对吗?

目的:我想找到毫秒从下午(下午12:00)这个日期以上到现在(当前日期和时间)的差异。 有显示日期相差几个方案,但都已经硬编码的日期和作为一个新手,我不知道如何与被挑选的日期更换。 (我也很困惑的对象日期和日历之间,无法理解它们之间的区别)。 例如,从这里一块:

http://www.java2s.com/Code/Java/Data-type/ReturnsaDatesetjusttoNoontotheclosestpossiblemillisecondoftheday.htm

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对象首先定义? 我如何使用这个或其他任何东西在你看来我的程序。 与详细注释一段代码会更有帮助的感谢!

Answer 1:

而不是使用:

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();
}


文章来源: Date picking and finding difference