Отметка времени отбрасывания при извлечении данных из таблицы оракула в Java - PullRequest
0 голосов
/ 29 сентября 2011

В настоящее время я получаю дату из таблицы оракулов в виде строки, которая дает мне дату и метку времени. Есть ли способ, которым я могу сбросить отметку времени и просто получить дату из таблицы. В настоящее время в моем Java-коде Date объявляется как строка, которая извлекает дату и время. Спасибо

setDate(rset.getString(1));

Ответы [ 3 ]

4 голосов
/ 29 сентября 2011

Использование ResultSet#getDate() вернет только компонент даты в виде java.sql.Date (часы, минуты, секунды и миллисекунды установлены в ноль). Вы можете затем превратить этот Date объект в строку.

Однако я бы рекомендовал хранить информацию о дате как Date, а не как String.

3 голосов
/ 29 сентября 2011

Будьте осторожны с использованием термина «метка времени». Временная метка - это тип данных в Oracle.

Если вы спрашиваете, как исключить «временную» часть даты. Вы можете использовать функцию TRUNC () в Oracle. Или вы не можете использовать строку на стороне Java, вместо этого использовать дату и установить формат, чтобы не показывать часть времени.

0 голосов
/ 22 августа 2016

java.time

Если ваш драйвер JDBC поддерживает JDBC 4.2 или более поздней версии, он может обрабатывать типы java.time , которые вытесняют старый java.util. Типы Date / .Calendar и java.sql. Вызовите метод setObject для PreparedStatement и getObject для ResultSet.

Типы только для даты будут отображаться в Java как java.time.LocalDate. Типы с указанием времени суток будут отображаться в Java как java.time.LocalTime. Отметка времени (дата-время) будет отображаться как java.time.Instant.

Если ваш драйвер еще не предлагает такую ​​поддержку, вернитесь к использованию java.sql типов, как показано в правильный ответ Matt Ball . Затем немедленно конвертируйте в типы java.time. Выполните свою бизнес-логику в типах java.time; использовать типы java.sql только для обмена данными с базой данных. Посмотрите на новые методы, добавленные в старые классы для удобных преобразований.

LocalDate ld = myJavaSqlDate.toLocalDate() ;
LocalTime lt = myJavaSqlTime.toLocalTime() ;
Instant instant = myJavaSqlTimestamp.toInstant() ;

Идя в другом направлении, посмотрите на методы valueOf или from.

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