java - 将字符串日期转换为日期对象时值错误

标签 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;
}

当我保存此日期对象并将其存储在 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/

相关文章:

Java如何启动CMD并与其保持连接以进行用户交互?

java - JavaFX 中使用事件的这些方法是否相同?

java - 质数 III 第 18 题——我没有得到正确答案,尽管我认为我是对的

java - Spring Boot应用程序失败-错误java包不存在

java - 比较两个 xml 文件并向第一个 xml 文件添加新标签

java - rJava 未在 R 中加载

java - Spring Security Oauth2 与 JWT 真的是无状态的吗?

java - 使用 Hibernate createCriteria 和 beginTransaction 的顺序有什么不同吗?

java - 重复用户输入 JMeter

java - JScrollPane 现在显示其视口(viewport)