将String date转换为date对象时的值错误

时间:2013-09-17 23:09:20

标签: java

当我将字符串日期转换为“18/09 / 13,02:01:51”时 使用此方法:

public static Date stringToDateFormat(String dateString) {
    Date date = null;
    try {
        date = new SimpleDateFormat("dd/MM/yy,hh:mm:ss").parse(dateString);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return date;
}

当我保存此日期对象转换为SQL Date并将其存储在PostgreSQL数据库中时,我会浪费时间 2013-09-18 00:00:00

这里是DB插入代码“

String query = "INSERT INTO My_Table(my_date) VALUES (?)";

Date date = stringToDateFormat("18/09/13,02:01:51");

preparedStatement = connection.prepareStatement(query);
preparedStatement.setDate(1, new java.sql.Date(date.getTime()));
preparedStatement.executeUpdate();

是编码问题还是数据库配置?

感谢。

1 个答案:

答案 0 :(得分:2)

您的日期字符串未指定ms并且正在舍入。

18/09/13,02:01:51 == 1379458917000

18/09/13,02:01:51.590 == 1379458917590

<强>更新

捕获MS的格式字符串为:dd/MM/yy,hh:mm:ss.SSS