字符串到DateTime问题的时间戳

时间:2015-07-31 08:46:29

标签: java datetime jdbc timestamp

我试图在使用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

抱歉我的英文不好

2 个答案:

答案 0 :(得分:1)

只需从java.util.Date构造java.sql.Date即可。

调用java.util.Date::getTimeepoch中提取毫秒数。将该计数传递给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);

你不能将字符串转换为日期,你应该解析它