当我转换字符串日期如“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;
}
当我保存此日期对象并将其存储在 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();
是编码问题还是数据库配置问题?
谢谢。
最佳答案
您的日期字符串未指定毫秒,并且正在四舍五入。
18/09/13,02:01:51 == 1379458917000
18/09/13,02:01:51.590 == 1379458917590
更新:
捕获 MS 的格式字符串为:dd/MM/yy,hh:mm:ss.SSS
关于java - 将字符串日期转换为日期对象时值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18861342/