Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JSpinner比较作为输入的时间?_Java_Swing_Date_Calendar_Jspinner - Fatal编程技术网

Java 如何使用JSpinner比较作为输入的时间?

Java 如何使用JSpinner比较作为输入的时间?,java,swing,date,calendar,jspinner,Java,Swing,Date,Calendar,Jspinner,我在应用程序中使用了2个JSpinner控件,允许用户输入24小时时间HH:mm格式。我试图验证结束时间是否在开始时间之后。但它似乎并不像预期的那样起作用。请帮助我做这件事的正确方法是什么 我的微调器控件如下所示: Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 24); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.S

我在应用程序中使用了2个JSpinner控件,允许用户输入24小时时间HH:mm格式。我试图验证结束时间是否在开始时间之后。但它似乎并不像预期的那样起作用。请帮助我做这件事的正确方法是什么

我的微调器控件如下所示:

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 24); 
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
startModel.setValue(calendar.getTime());
JSpinner spnStartTime = new JSpinner(startModel);
JSpinner.DateEditor editor = new JSpinner.DateEditor(spnStartTime, "HH:mm");
DateFormatter formatter1 =(DateFormatter)statTimeEditor.getTextField().getFormatter();        
formatter1.setAllowsInvalid(false); 
formatter1.setOverwriteMode(true);
spnStartTime.setEditor(statTimeEditor);
我在spnEndTime也做了同样的事情

这就是我现在要做的:

SimpleDateFormat parser = new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy",Locale.ENGLISH);
Date st=parser.parse(String.valueOf(spnStartTime.getValue()));
Date en=parser.parse(spnEndTime.getValue().toString());
if(en.after(st))
{
   //do stuff
}
else
{
   //display error
}
但是spnStartTime.getValue()返回1970年的日期,并且我的编辑器设置为当前年份。因此,我的日期比较没有按预期进行


我尝试使用st.setHours(Calendar.getInstance().getTime().getHours());“en”也是如此。但是getHours()现在不推荐使用。那么,什么是合适的解决方法呢?

在您的
日历
对象上,您只设置时间,不设置日期。因此,型号上的日期不变:1970-01-01。还可以设置年、月和日。
您还可以查看。

要更快地获得更好的帮助,请发布一个或。在简短的说明中,如何比较从2个JSpinner控件作为用户输入获得的(HH:mm)时间值?以及如何从日期对象中检索小时和分钟部分。上一次我发布了一个不同的问题,人们评论说如果有人帮助我,我应该发布一个更详细的代码。所以这次我发布了详细信息,只看到了反对票。我到底应该发布什么?!!!“我到底应该发布什么?!!!”前两个链接,你仔细阅读后不明白的到底是什么?“上次我发布了一个不同的问题”不准备评论你没有链接到的其他问题。事实上,所有相关的都在这里;它将当前日期和时间设置为日历。不是吗?另外,当我试图打印Calendar.getTime()的值时,它会给我当前的年份和月份。