减去两个日期(在JLabels中设置)

时间:2014-09-26 16:25:30

标签: java swing

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                                            
    Calendar cal = Calendar.getInstance();
    SimpleDateFormat dateOnly = new SimpleDateFormat("dd-MM-YYYY");
    label1.setText(dateOnly.format(cal.getTime()));
    label2.getText();
}

问题:   如何从JLabel中删除/解析日期?
  你怎么减去2个日期?

label1输入值今天是date.26-09-2014。   label2输入值为26-10-2014。

我怎样才能得到答案:jtextfield中的“30天”。

2 个答案:

答案 0 :(得分:0)

使用joda库:

// parsing

DateTime dateTime1 = new DateTime(2014, 9, 26, 1, 0);
DateTime dateTime2 = new DateTime(2014, 9, 26, 0, 0));

DateTimeFormatter dtfOut = DateTimeFormat.forPattern("MM/dd/yyyy");
System.out.println(dtfOut.print(dateTime1));
System.out.println(dtfOut.print(dateTime2));

// substracting
System.out.println(Days.daysBetween(dateTime1, dateTime2).getDays() + " days");

答案 1 :(得分:0)

获取日期并按以下格式解析数据

Date date1,date2=null;

SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

date1= format.parse(fromDateValue);
date2= format.parse(toDateValue);

两个日期的差异将以毫秒为单位,需要使用长变量

来处理
long subDateValue = date2.getTime()-date1.getTime();
long subValueinDays = subDateValue/(24 * 60 * 60 * 1000) //convert milliseconds into seconds and then into days
System.out.println("Days Difference between" +fromDateValue + "and" +toDateValue +"is" +subValueinDays + "Days");