gpt4 book ai didi

java - java.util.Date 到 java.sql.Date 的转换会截断时间部分

转载 作者:行者123 更新时间:2023-11-29 06:53:42 25 4
gpt4 key购买 nike

我正在尝试使用 JDBC 将应用程序中的 java.util.Date 保存到我的 SQL Server 数据库中。

当我使用下面的方法将 java.util.Date 转换为 java.sql.Date 时,它会截断时间部分。

java.sql.Date javaSqlExpiryDate = new java.sql.Date(javaUtilExpiryDate.getTime());
System.out.println("javaUtilExpiryDate: " + javaUtilExpiryDate.toString());
System.out.println("javaSqlExpiryDate: " + javaSqlExpiryDate.toString());

控制台 窗口报告输出为:

javaUtilExpiryDate: Thu Sep 01 18:19:08 IST 2016

javaSqlExpiryDate: 2016-09-01

如何让它也保留时间部分?

最佳答案

是的,这是预期的和记录在案的行为。

Quote from the JavaDocs

To conform with the definition of SQL DATE, the millisecond values wrapped by a java.sql.Date instance must be 'normalized' by setting the hours, minutes, seconds, and milliseconds to zero in the particular time zone with which the instance is associated.

如果你想保留时间,你需要使用java.sql.Timestamp(特别是如果数据库中的列被定义为datetime)。

关于java - java.util.Date 到 java.sql.Date 的转换会截断时间部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39270883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com