我有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);


我明白了

java - 将JSpinner的日期值转换为整数-LMLPHP

我在网上搜索并检查了相关问题,然后尝试将其强制转换为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/

10-10 18:42