0

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

情景是,

1.如果我打开 gui 我将获取当前时间并将其设置为 endtime 和 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),在 starttime( 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                                       
}

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

4

1 回答 1

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

于 2014-02-06T06:31:16.760 回答