我目前正在使用带有JSpinner的SpinnerDateModel来设置我的java swing应用程序中的时间。以下是我的代码:
shiftTime = new JSpinner(new SpinnerDateModel());
JSpinner.DateEditor de_shiftTime = new JSpinner.DateEditor(shiftTime,
"HH:mm:ss");
shiftTime.setEditor(de_shiftTime);
//shiftTime.setValue(new Date()); // will only show the current time
shiftTime.setSize(108, 22);
shiftTime.setLocation(436, 478);
add(shiftTime);
但是,当我使用.getValue()方法将此选定时间添加到我的数据库中时(我正在使用mySql),时间正在添加日期。我不想要日期,只需要时间,例如十三点59分16秒。 但是,我现在得到的是“Thu Jan 01 13:59:16 SGT 1970”。
有没有办法覆盖新的SpinnerDateModel()或其他东西来删除结果中的日期?任何帮助是极大的赞赏!谢谢! : - )
答案 0 :(得分:2)
您可以使用SimpleDateFormat
将其转换为所需的输出:
Date date=(Date)shiftTime.getValue();
SimpleDateFormat format=new SimpleDateFormat("HH:mm:ss");
System.out.println(format.format(date));
JSpinner.getValue
返回Object
,您只是打印默认返回的值Date#toString()
。
答案 1 :(得分:2)
如果您正在使用joda-time - 并且您应该像Java日期库一样严重破坏,那么您的代码将如下所示:
DateTime date = new DateTime((Date)shiftTime.getValue());
ISODateTimeFormatter fmt = ISODateTimeFormatter.timeNoMillis();
String dateAsString = fmt.print(date);
System.err.println(dateAsString);
如果您需要进一步的帮助,请发表评论。