我正在尝试使用jspinner和java8的timeapi制作一个时间选择器。我想做一个没有日期的时间选择器。
以前,我使用的是simpledateformat,但当我打印出jspinner的值时,它会返回带有日期的时间。
那么,如何将localtime对象的值传递给jspinner的setvalue方法呢?
这是我目前的代码:
JSpinner timeSpinner = new JSpinner(new SpinnerDateModel());
JSpinner.DateEditor timeEditor = new JSpinner.DateEditor(timeSpinner, "HH:mm");
timeSpinner.setEditor(timeEditor);
LocalTime newTime = LocalTime.of(11, 9);
timeSpinner.setValue(newTime);
timeSpinner.setBounds(126, 55, 56, 22);
contentPanel.add(timeSpinner);
还是我的做法不对?
这是我的原始代码,可以工作:
JSpinner timeSpinner = new JSpinner(new SpinnerDateModel());
JSpinner.DateEditor timeEditor = new JSpinner.DateEditor(timeSpinner, "HH:mm");
timeSpinner.setEditor(timeEditor);
SimpleDateFormat time = new SimpleDateFormat("HH:mm");
try {
timeSpinner.setValue(time.parseObject("10:00"));
} catch (ParseException timeError) {
timeError.printStackTrace();
}
timeSpinner.setBounds(126, 55, 56, 22);
contentPanel.add(timeSpinner);
1条答案
按热度按时间ijxebb2r1#
是的,方法
getValue()
,班级SpinnerDateModel
,返回的示例java.util.Date()
但你可以把它转换成LocalTime
具体如下:如您所见,有两种方法可以转换
java.util.Date
至LocalTime
,具体取决于您使用的jdk版本。将打印上述代码
theTime
格式HH:mm