将JSpinner的日期值转换为整数

时间:2016-08-21 07:59:16

标签: java swing date jspinner

我有两种获取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);

我明白了。

enter image description here

我在线搜索并检查了相关问题然后我尝试将其转换为Number和int但是没有成功。

我需要能够 230 330 ,例如 2:30 3:30 因为我在数据库中的字段是Int

有没有办法实现转换为Int?

谢谢。

1 个答案:

答案 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);