我有两种获取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?
谢谢。
答案 0 :(得分:2)
感谢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);