我试图在使用java的两个数据库之间看到有关日期转换问题的问题,但没有解决我的问题。
以下是使用DateTime格式在我的数据库中插入的当前日期:
java.sql.Date SQLDateValue = new java.sql.Date(System.currentTimeMillis()) ;
preparedStatement.setDate(index, SQLDateValue);
这是来自名为Vdoc的API的时间戳,转换为String,我试图将其转换为java.sql.Date(DateTime):
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date DateValue = (java.util.Date) this.getWorkflowInstance().getValue(this.ListeChamps[i][2]);
String StringDateValue = DateValue.toString();
java.sql.Date SQLDateValue = new java.sql.Date (sdf.parse(StringDateValue).getTime());
preparedStatement.setDate(index, SQLDateValue);
第二行返回包含String的字段值,但我需要使用toString()。
以下错误消息是:
Failed to convert the date and / or time from a string.
我的两个日期参数都是java.sql.date,我不明白。 如果你知道这会发生什么,那么帮助我会很高兴。
Ezerah
抱歉我的英文不好
答案 0 :(得分:1)
只需从java.util.Date构造java.sql.Date即可。
调用java.util.Date::getTime
从epoch中提取毫秒数。将该计数传递给java.sql.Date
的构造函数。
在你的情况下,下面应该有效。
java.util.Date DateValue = (java.util.Date) this.getWorkflowInstance().getValue(this.ListeChamps[i][2]);
java.sql.Date SQLDateValue = new java.sql.Date (DataValue.getTime());
preparedStatement.setDate(index, SQLDateValue);
答案 1 :(得分:0)
试试这个:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date DateValue = **sdf.parse(**this.getWorkflowInstance().getValue(this.ListeChamps[i][2])**)**;
String StringDateValue = DateValue.toString();
java.sql.Date SQLDateValue = new java.sql.Date (sdf.parse(StringDateValue).getTime());
preparedStatement.setDate(index, SQLDateValue);
你不能将字符串转换为日期,你应该解析它