如何从字符串设定的JSpinner的价值?(How to set value of JSpinner

2019-10-20 14:33发布

我目前正在使用的JSpinner设置一个时间值,然后将其更新到我的数据库为VARCHAR如12:00:00 AM。 然而,在另一种形式,我想找回这个时候,加入到我的数据库到JSpinner的在我更新的形式。 更新形式为用户更新他们以前(例如以上12:00:00 AM等说明)选择的时间。 现在的默认时间值是当前时间。 我试图用.setValue()方法,但它是一个非法的值作为我的检索时间是一个字符串。 这里是我的代码,以使事情更清晰:

shiftTime = new JSpinner(new SpinnerDateModel());
    JSpinner.DateEditor de_shiftTime = new JSpinner.DateEditor(shiftTime,
            "hh:mm:ss a");
    shiftTime.setEditor(de_shiftTime);
    shiftTime.setSize(108, 22);
    shiftTime.setLocation(436, 478);
    add(shiftTime);
    shiftTime.setValue(a.getVolDutyShift());

所述.getVolDutyShift()方法返回一个字符串(12:00:00 AM以字符串格式)一个是我的对象,该对象调用.getVolDutyShift()方法。 我应该如何解析这个a.getVolDutyShift()这样的JSpinner将加载时间在我的数据库(12:00:00 AM)的时间?

Answer 1:

尝试了这一点。 它会将您的时间字符串的java.sql.Time。

    SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss a");
    java.util.Date d =(java.util.Date)format.parse(a.getVolDutyShift());
    java.sql.Time time = new java.sql.Time(d.getTime());
    shiftTime.setValue(time );

但你永远不应该保存在数据库中的原始数据类型的日期和时间,并为varchar



Answer 2:

我一直与解析问题。 我找到了另一种方式,如果没有解析解决您的问题...

JSpinner.DateEditor de = new JSpinner.DateEditor(shiftTime, a.getVolDutyShift());
jSpinner1.setEditor(de);


文章来源: How to set value of JSpinner from string?