0

我正在尝试获取 2 个日期时间之间的差异。我有一个数组列表,每个对象都包含日期类型的数据。

我的问题是:1)正在使用 Calendar.getInstance().get(Calendar.MINUTE) ... 等获取当前日期和时间的最佳方法 2)我应该手动填写 Date 变量中的数据,如下所示:

Date currentDate = new Date();
currentDate.setMinutes(Calendar.getInstance().get(Calendar.MINUTE));
currentDate.setHours(Calendar.getInstance().get(Calendar.HOUR));
currentDate.setDate(Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
currentDate.setMonth(Calendar.getInstance().get(Calendar.MONTH));
currentDate.setYear(Calendar.getInstance().get(Calendar.YEAR));

3)如何获得 currentDate 和我拥有的旧日期之间的差异,currentDate - oldDate“AM_PM”问题如何,我应该手动执行此功能吗?

4

3 回答 3

0

1) 正在使用 Calendar.getInstance().get(Calendar.MINUTE) ...等获取当前日期的最佳方式

来自 java.util.Date 空构造函数的 JavaDoc:

分配一个 Date 对象并对其进行初始化,以便它表示分配它的时间,精确到毫秒。

3)如何获得 currentDate 和我拥有的旧日期之间的差异是否像 currentDate - oldDate 以及“AM_PM”问题,我应该手动执行此功能吗?

Date oldDate = ...
Date currentDate = new Date();
long dt = currentDate.getTime() - oldDate.getTime();
于 2015-06-24T20:39:10.997 回答
0

1)获取当前日期:

Date = new Date();

2) 要手动设置日期,最好使用日历。

Calendar c = new GregorianCalendar();
c.set(Calendar.MONTH, 1);
c.set(Calendar.YEAR, 2015);
// ... and so on
Date date = c.getTime();

3) 以毫秒为单位计算两个日期之间的距离。

Date d1 = ....;
Date d2 = ....;
long distance = d1.getTime() - d2.getTime();
于 2015-06-24T20:55:15.430 回答
0

试试这个,下面的变量now是当前日期。

String givenDate = "03/11/2015";

          SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
          try {
                 Date date = (Date)dateFormat.parseObject(givenDate);
                 Date now = new Date();
                 System.out.println(date);
                 System.out.println(now);
                 int diffInDays = (int)( (now.getTime() - date.getTime()) 
                    / (1000 * 60 * 60 * 24) );

                 System.out.println(diffInDays);

          } catch (ParseException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
          }

您可以选择任何格式并添加时间或上午/下午,请参阅SimpleDateFormat的更多详细信息。如果您没有字符串日期,那么您可以直接使用date上面显示的变量。

干杯!!

于 2015-06-24T20:58:00.573 回答