如何从jSpinner更改格式时间?

时间:2014-04-16 07:56:57

标签: java swing jspinner

我使用jSpinner来选择并节省时间。

我想在数据库中输入任务的开始时间。但保存数据库的格式是:Tue Apr 15 17:24:56 BST 2014

我想要HH:mm。

这是我用来在数据库中写入数据的代码:

    public void UpdateTask() {
    try {
        Task t1 = new Task();
        t1.setIdTask(jTIdTask.getText());
        t1.setDate(jTDate.getText());

        ---->  t1.setHourBegin(jSpinner2.getValue().toString());  // This is what I need change

        TaskDao dao = new TaskDao();
        dao.updateTask(t1);

    } catch (SQLException ex) {
        Logger.getLogger(jTTask.class.getName()).log(Level.SEVERE, null, ex);
    }
}

CLASS DAO

  public void updateTask(Taskst1) throws SQLException{
    String sql = "update Taskset idTask=?, date=?, hourBegin=? where idTask=?"; 
    PreparedStatement stmt = this.conexao.prepareStatement(sql);
    stmt.setString(1, st1.getIdTask());
    stmt.setString(2, st1.getDate());
    stmt.setString(3, st1.getHourBegin());
    stmt.setString(4, st1.getIdTask());

    stmt.execute();
    stmt.close();
    conexao.close();
}

FORM

enter image description here

enter image description here


   public void UpdateTask() {
    try {
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
        Task t1 = new Task();
        t1.setIdTask(jTIdTask.getText());
        t1.setDate(jTDate.getText());

        String time = sdf.format(jSpinner2.getValue());
        t1.setHourBegin(time);

        TaskDao dao = new TaskDao();
        dao.updateTask(t1);

    } catch (SQLException ex) {
        Logger.getLogger(jTTask.class.getName()).log(Level.SEVERE, null, ex);
    }
}

1 个答案:

答案 0 :(得分:1)

jSpinner2.getValue().toString()基本上是要求返回的对象提供它所拥有的任何String代表,在这种情况下,您要求Date对象将其传回给您。'}默认String表示。

请记住,Date没有任何格式概念,它只是自Unix时代以来毫秒数的容器。

您需要使用DateFormatter某种格式将Date值从JSpinner格式化为您想要的格式...

更好的解决方案是在数据库中使用某种日期/时间数据类型......

<强>更新

存储在JSpinner中的是Date对象,它没有格式的概念。您需要使用某种DateFormatter来获取Date格式为String的格式。

Object value = jSpinner2.getValue();
if (value instanceof Date) {
    String time = new SimpleDateFormat("HH:mm").format(value);
    t1.setHourBegin(time);
} else {
    // Deal with the invalid value...
}