【发布时间】:2017-03-14 13:44:35
【问题描述】:
我使用 JSpinner 来设置时间(小时和分钟,模式为“HH:mm”)。
我初始化JSpinner如下:
JSpinner spinner = new JSpinner();
spinner.setModel(new SpinnerDateModel());
JSpinner.DateEditor timeEditor = new JSpinner.DateEditor(spinner, "HH:mm");
spinner.setEditor(timeEditor);
spinner.setValue(new Date());
当我获得价值时
(Date) spinner.getValue()
不更改值 - 我得到正确的值 Tue Mar 14 14:46:41 CET 2017,但是当我向下更改一分钟时,它将“纪元”日期返回为 Thu Jan 01 14:45:00 CET 1970。 “纪元”日期表示时间(小时和分钟)可以,但日期年、月或日是错误的。
如何初始化 JSpinner 以始终通过spinner.getValue() 获取实际日期? - 不是epoche 日期
编辑
我找到了如下解决方案
Date spinnerValue = (Date) spinner.getValue();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MMM/dd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MMM/dd HH:mm:ss");
Date actualDate = sdf2.parse(sdf1.format(new Date()) + " " + sdf.format(spinnerValue), new ParsePosition(0));
...不好看,我想写得更小更聪明。
【问题讨论】:
-
不。我问如何从 JSpinner 获取完整日期(实际日期)