我有2种方法来获取JSpinner的DateModel,另一种方法是将JSpinner的编辑器设置为将编辑器的格式显示为00:00。期望的输入值为时间“ HH:mm”
public class JSpinnerUtilities {
public static SpinnerDateModel getADateModel(){
Date myDate = new Date();
SpinnerDateModel mySpinnerDateModel = new SpinnerDateModel(myDate,null,null,Calendar.HOUR_OF_DAY);
return mySpinnerDateModel;
}
public static JSpinner.DateEditor getEditorInTimeFormat(JSpinner aJSpinner){
Calendar myCalendar = Calendar.getInstance();
myCalendar.set(Calendar.HOUR_OF_DAY,0);
myCalendar.set(Calendar.MINUTE,0);
Date myDate = myCalendar.getTime();
JSpinner.DateEditor myDateEditor = new JSpinner.DateEditor(aJSpinner, "HH:mm");
aJSpinner.setValue(myDate);
return myDateEditor;
}
}
然后,我用它来设置任何JSpinner对象的模型和编辑器。
startTimeJSpinner.setModel(JSpinnerUtilities.getADateModel());
startTimeJSpinner.setEditor(JSpinnerUtilities.getEditorInTimeFormat(startTimeJSpinner));
endTimeJSpinner.setModel(JSpinnerUtilities.getADateModel());
endTimeJSpinner.setEditor(JSpinnerUtilities.getEditorInTimeFormat(endTimeJSpinner));
问题是,在插入数据库之前,我不知道如何将其转换为
int
。Object objectStart = startTimeJSpinner.getValue();
Object objectEnd = endTimeJSpinner.getValue();
JOptionPane.showMessageDialog(null,"Start: "+objectStart+"\n"+"End: "+objectEnd);
我明白了
我在网上搜索并检查了相关问题,然后尝试将其强制转换为Number和int,但未成功。
我需要能够获得230和330,例如2:30和3:30,因为我在数据库中的字段是
Int
有没有可能实现向Int转换的方法?
谢谢。
最佳答案
感谢JB Nizet的建议。
这就是我所做的。
Date startDate = (Date) startTimeJSpinner.getValue();
Date endDate = (Date) endTimeJSpinner.getValue();
Calendar myCalendar = Calendar.getInstance();
myCalendar.setTime(startDate);
int myStartHours = myCalendar.get(Calendar.HOUR_OF_DAY);
int myStartMins = myCalendar.get(Calendar.MINUTE);
int myStartTime = Integer.parseInt(myStartHours+""+myStartMins);
myCalendar.setTime(endDate);
int myEndHours = myCalendar.get(Calendar.HOUR_OF_DAY);
int myEndMins = myCalendar.get(Calendar.MINUTE);
int myEndTime = Integer.parseInt(myEndHours+""+myEndMins);
JOptionPane.showMessageDialog(null,"Start: "+myStartTime+"\n"+"End: "+myEndTime);
关于java - 将JSpinner的日期值转换为整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39062088/