我使用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);
}
}
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();
}
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);
}
}
答案 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...
}