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

标签 java date jspinner jdatechooser

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

场景是,

1.如果我打开gui,我将获取当前时间并将其设置为endtime和starttime中的currenttime-1(代码如下),

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 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

这就是日历的好处

关于java - 要检查 JSpinner 中的时间值并相应地在 JDateChooser 中设置日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21595530/

相关文章:

java - 在 JodaTime 中将日期转换为其他格式

javascript - 在 JavaScript 中检查日期

java - 禁用 JSpinner 上的向上和向下箭头按钮

java - 获取准确的 jSpinner 值

java - 计算矩形周长和面积

java - Struts 2 Convention 插件定义多个父包

php - 月份名称到月份编号 - 2 月为 03?

java - 重置 Java Swing 中的微调器值

java - 使用 UTF-16 编码和 BOM 在 Ant 中编写文本文件

java - 有比 Swing 更好的 Java 应用程序框架吗?