0

当我使用此方法转换字符串日期如“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 日期并将其存储在 PostgreSQL 数据库中时,我失去了时间 2013-09-18 00:00:00

这里是数据库插入代码”

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();

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

谢谢。

4

1 回答 1

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

于 2013-09-17T23:14:38.507 回答