我在我的应用程序中使用了2个JSpinner控件,允许用户输入24小时制HH:mm格式。我试图验证开始时间之后是否结束时间。但它似乎没有按预期工作。请帮助我什么是正确的方式来做到这一点。如何比较使用JSpinner输入的时间?
我的微调控制是这样的:
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()现在已被弃用。那么对此有什么合适的解决方法?
为了更快得到更好的帮助,请发布[MCVE]或[简短,独立,正确的示例](http://www.sscce.org/)。 –
在较短的笔记中,我如何比较从2个JSpinner控件获取的(HH:mm)时间值作为用户输入?我如何从Date对象中检索小时和分钟部分。任何关于这些的帮助对我来说都是很有价值的。 – developer3
上次我发布了一个不同的问题,人们评论说,如果有人应该帮助我,我应该发布更详细的代码。所以这次我发布了细节,我只看到了降价。我应该发布什么?!!! – developer3