要相应地检查JSpinnerand中的时间值并在JDateChooser中设置日期

时间:2014-02-06 06:22:02

标签: java date jspinner jdatechooser

我在gui中有两个 Jdatechooser (名为firstdate和lastdate)和 Jspinner (命名为starttime和endtime)。

情景是,

1.如果我打开gui,我将获得当前时间并在starttime和currenttime-1中设置它在starttime(代码如下),

Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR, -1);
Date oneHourBack = cal.getTime();
String timeStamp = new SimpleDateFormat("HH:mm:ss").format(oneHourBack);
Date date = new SimpleDateFormat("HH:mm:ss").parse(timeStamp);
starttime.setValue(date);

2.对于Jdatechooser我设置当前日期。

3.如果当前时间是00:44:36(HH:mm:ss),在开始时间( Jspinner )我必须设置23:44:36,我必须这样做  将firstdate( Jdatechooser )值设置为前一天而不是当前日期。

为此我尝试以下方式,

Calendar currentTime = Calendar.getInstance();
Date curHr = currentTime.getTime();
String curtime = new SimpleDateFormat("HH").format(curHr);
int timeCheck = Integer.parseInt(curtime);

if(timeCheck > 00 && timeCheck < 01){
 //code to set previous day's  
 date                                       
}

是这样做的吗?还是有更好的方法吗?请帮忙

1 个答案:

答案 0 :(得分:2)

您应该可以使用oneHourBack Date值作为lastdate JDateChooser的值,因为不仅时间已经回滚,而且还有日期值,例如......

Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 44);
cal.set(Calendar.SECOND, 36);

Date startTime = cal.getTime();

cal.add(Calendar.HOUR, -1);
Date endTime = cal.getTime();

System.out.println("startTime = " + startTime);
System.out.println("endTime = " + endTime);

...输出

startTime = Thu Feb 06 00:44:36 EST 2014
endTime = Wed Feb 05 23:44:36 EST 2014

这是Calendar

的好处