【问题标题】:To check time value in JSpinnerand set date in JDateChooser accordingly检查 JSpinner 中的时间值并相应地在 JDateChooser 中设置日期
【发布时间】:2014-02-06 06:22:02
【问题描述】:

我在一个 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                                       
}

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

【问题讨论】:

  • 您不能简单地使用oneHourBack Date 值作为lastdate JDateChooser 的值吗?
  • Calendar 已经将Date 回滚了一天...我还缺少什么吗?

标签: java date jspinner jdatechooser


【解决方案1】:

您应该能够使用 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的好处

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 2018-07-16
    • 1970-01-01
    相关资源
    最近更新 更多