将 java.sql.Date 转换为 java.util.Date

发布于 2024-11-08 17:51:20 字数 205 浏览 0 评论 0原文

将 java.sql.Date 对象转换为 java.util.Date 同时保留时间戳的最简单方法是什么?

我尝试过:

java.util.Date newDate = new Date(result.getDate("VALUEDATE").getTime());

没有运气。它仍然只将日期部分存储到变量中。

What's the simplest way to convert a java.sql.Date object to a java.util.Date while retaining the timestamp?

I tried:

java.util.Date newDate = new Date(result.getDate("VALUEDATE").getTime());

with no luck. It's still only storing the date portion into the variable.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

就此别过 2024-11-15 17:51:20

java.sql.Date 类被设计为仅携带日期而不携带时间,因此您看到的转换结果对于该类型是正确的。您需要使用 java.sql.Timestamp 来获取完整的日期和时间。

java.util.Date newDate = result.getTimestamp("VALUEDATE");

The class java.sql.Date is designed to carry only a date without time, so the conversion result you see is correct for this type. You need to use a java.sql.Timestamp to get a full date with time.

java.util.Date newDate = result.getTimestamp("VALUEDATE");
寄人书 2024-11-15 17:51:20

如果您确实希望运行时类型为 util.Date,那么只需执行以下操作:

java.util.Date utilDate = new java.util.Date(sqlDate.getTime());

Brian。

If you really want the runtime type to be util.Date then just do this:

java.util.Date utilDate = new java.util.Date(sqlDate.getTime());

Brian.

欢你一世 2024-11-15 17:51:20

由于java.sql.Date扩展了java.util.Date,你应该能够这样做

java.util.Date newDate = result.getDate("VALUEDATE");

Since java.sql.Date extends java.util.Date, you should be able to do

java.util.Date newDate = result.getDate("VALUEDATE");
苄①跕圉湢 2024-11-15 17:51:20

此函数将从 SQL 日期对象返回转换后的 java 日期。

public static java.util.Date convertFromSQLDateToJAVADate(
            java.sql.Date sqlDate) {
        java.util.Date javaDate = null;
        if (sqlDate != null) {
            javaDate = new Date(sqlDate.getTime());
        }
        return javaDate;
    }

This function will return a converted java date from SQL date object.

public static java.util.Date convertFromSQLDateToJAVADate(
            java.sql.Date sqlDate) {
        java.util.Date javaDate = null;
        if (sqlDate != null) {
            javaDate = new Date(sqlDate.getTime());
        }
        return javaDate;
    }
z祗昰~ 2024-11-15 17:51:20

通过阅读源代码,如果java.sql.Date确实有时间信息,调用getTime()将返回一个包含时间信息的值。

如果这不起作用,则该信息不在 java.sql.Date 对象中。我预计 JDBC 驱动程序或数据库(实际上)正在将时间分量归零……或者信息一开始就不存在。

我认为你应该使用 java.sql.Timestamp 和相应的结果集方法以及相应的 SQL 类型。

From reading the source code, if a java.sql.Date does actually have time information, calling getTime() will return a value that includes the time information.

If that is not working, then the information is not in the java.sql.Date object. I expect that the JDBC drivers or the database is (in effect) zeroing the time component ... or the information wasn't there in the first place.

I think you should be using java.sql.Timestamp and the corresponding resultset methods, and the corresponding SQL type.

瘫痪情歌 2024-11-15 17:51:20

在最近的实现中,java.sql.Data是java.util.Date的子类,因此不需要转换。
请参阅此处:https://docs.oracle。 com/javase/1.5.0/docs/api/java/sql/Date.html

In the recent implementation, java.sql.Data is an subclass of java.util.Date, so no converting needed.
see here: https://docs.oracle.com/javase/1.5.0/docs/api/java/sql/Date.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文