【发布时间】:2016-08-21 07:59:16
【问题描述】:
我有两种方法来获取 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 的转换?
谢谢。
【问题讨论】:
-
你不能修复你的数据库并使用 Time 而不是 int 吗?不管怎样,你试过什么?如果我告诉你当前时间是 2016 年 8 月 21 日 10 点 09 分,你怎么把它变成 1009?您从日期中提取小时,然后提取分钟,然后将它们组合(通过连接,或将小时乘以 100 并添加分钟),对吗?那么,你为什么不这样做呢?
-
@JB Nizet 感谢您的提示。我实际上尝试将它作为对象,然后我尝试将其转换为数字,但数字类型无法转换为 int。在提取 HOUR 和 MINUTE 后,我按照您的建议通过连接和解析为 Integer 来实现 int。谢谢。