【发布时间】:2018-02-12 13:46:03
【问题描述】:
我有这个代码。游戏类中的数据是DateFormat,它需要是DateFormat,但是在sql中我需要设置Date。如何在这行代码中将 DateFormat 转换为 Date?
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost/internacionalizacija?useUnicode=true&characterEncoding=UTF-8", "root", "");
String sql = "INSERT INTO utakmice(tim1, tim2, datum) VALUES(?,?,?)";
PreparedStatement stmt = conn.prepareStatement(sql);
//stmt.execute("set names 'utf8'");
stmt.setString(1, utakmice.getTim1());
stmt.setString(2, utakmice.getTim2());
stmt.setDate(3, utakmice.getDatum());
游戏类:
public class Games {
private String tim1;
private String tim2;
private DateFormat datum;
public Utakmice(String tim1, String tim2, DateFormat datum) {
this.tim1 = tim1;
this.tim2 = tim2;
this.datum = datum;
}
public void setTim1(String tim1) {
this.tim1 = tim1;
}
public String getTim1() {
return tim1;
}
public void setTim2(String tim2) {
this.tim2 = tim2;
}
public String getTim2() {
return tim2;
}
public void setDatum(DateFormat datum) {
this.datum = datum;
}
public DateFormat getDatum() {
return datum;
}
}
我从 JFrame 获取日期,这里是代码:
private void btnSpremiActionPerformed(java.awt.event.ActionEvent evt) {
String tim1 = txtTim1.getText();
String tim2 = txtTim2.getText();
DateFormat datum = txtDate.getDateFormat();
Utakmice utakmice = controll.kreirajUtakmice(tim1, tim2, datum);
controll.spremiUtakmice(utakmice);
}
【问题讨论】:
-
您应该尝试展示一些输入/输出示例。像这样不清楚。请参阅How to Ask 以稍微改善您的问题。请注意,
DateFormat只是一种用于从Date或相反创建String的模式。这不是Date,它不保存任何时间数据。 -
提示:需要
DateFormat类型的对象来将字符串解析为Date对象。那么您的格式化日期字符串在哪里? -
因为这是一个
DatePicker,你只是使用了错误的getter来选择在那个组件中挑选的Date,你得到了它的格式化程序。不幸的是,我不知道您使用的是什么组件(我认为 Swing 没有提供)。您能否显示导入此DatePicker类的import行? (或者给我们使用的框架)。 PS:我会在答案中添加一些DateFormat用法示例,但如果没有Date信息,您将无法使用它。 -
@AxelH 你的意思是:
txtDate = new datechooser.beans.DateChooserCombo();?!我用DateChoser.jar -
@KatjaBilobrk 我的错,我应该早点看到
PreparedStatement错误......这是一个不同的问题。我们通常使用java.util.Date(嗯,使用过),但是从SQL 中,有一个java.sql.Date,相同的“名称”但不同的实例。您可以在that thread 上查看如何从java.util.Date创建java.sql.Date。由于这是一个不同的问题,我将保持我的答案不变,这与最初的问题相去甚远。