Преобразование java.sql.Date в java.util.Date - PullRequest
46 голосов
/ 20 мая 2011

Какой самый простой способ преобразовать объект java.sql.Date в java.util.Date, сохранив отметку времени?

Я пытался:

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

без удачи. Он по-прежнему хранит только часть даты в переменной.

Ответы [ 6 ]

57 голосов
/ 20 мая 2011

Класс java.sql.Date предназначен для переноса только даты без времени, поэтому вы видите правильный результат для этого типа.Вам нужно использовать java.sql.Timestamp, чтобы получить полную дату со временем.

java.util.Date newDate = result.getTimestamp("VALUEDATE");
8 голосов
/ 28 марта 2014

Если вы действительно хотите, чтобы тип среды выполнения был утилит. Дата, тогда просто сделайте это:

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

Брайан.

8 голосов
/ 20 мая 2011

Поскольку java.sql.Date расширяется java.util.Date, вы должны быть в состоянии сделать

java.util.Date newDate = result.getDate("VALUEDATE");
7 голосов
/ 05 января 2015

Эта функция будет возвращать преобразованную дату Java из объекта даты SQL.

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;
    }
3 голосов
/ 20 мая 2011

После чтения исходного кода, если java.sql.Date действительно имеет информацию о времени, вызов getTime() вернет значение, которое включает информацию о времени.

Если это не работает, то информация отсутствует в объекте java.sql.Date.Я ожидаю, что драйверы JDBC или база данных (в действительности) обнуляют компонент времени ... или информации не было вообще.

Я думаю, вы должны использовать java.sql.Timestamp исоответствующие методы набора результатов и соответствующий тип SQL.

0 голосов
/ 12 мая 2015

В недавней реализации java.sql.Data является подклассом java.util.Date, поэтому преобразование не требуется.см. здесь: https://docs.oracle.com/javase/1.5.0/docs/api/java/sql/Date.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...