仅使用SpinnerDateModel返回时间

时间:2014-08-03 06:12:01

标签: java swing jspinner

我目前正在使用带有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()或其他东西来删除结果中的日期?任何帮助是极大的赞赏!谢谢! : - )

2 个答案:

答案 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);

如果您需要进一步的帮助,请发表评论。