Тип данных Java для хранения только даты
4914 просмотра
8 ответа
Какой тип данных в Java может содержать только дату и не требует компонента времени? Например, просто хранить 12/07/2012
. Я работаю с сохранением данных в / из базы данных, которая имеет тип данных только для даты, поэтому я ищу лучший эквивалентный тип данных в Java.
Ответы (8)
5 плюса
от JDK java.sql.Date
::
Тонкая оболочка со значением в миллисекунду, позволяющая JDBC идентифицировать его как значение SQL DATE. Значение в миллисекундах представляет количество миллисекунд, прошедших с тех пор
January 1, 1970 00:00:00.000 GMT
.Чтобы соответствовать определению SQL DATE, значения миллисекунд, обернутые
java.sql.Date
экземпляром, должны быть «нормализованы» путем установки часов, минут, секунд и миллисекунд на ноль в конкретном часовом поясе, с которым связан экземпляр.
или из JodaTime : DateMidnight
или LocalDate
(спасибо @cdeszaq)
Автор: Sean Patrick Floyd Размещён: 18.06.2012 01:20
DateMidnight
определяет дату, когда компонент времени фиксируется в полночь. Класс использует часовой пояс, поэтому полночь является локальной, если только не используется часовой пояс UTC.Важно подчеркнуть, что этот класс представляет время полуночи в любой день. Обратите внимание, что полночь определяется как 00:00, то есть в самом начале дня.
3 плюса
Другие ответы устарели.
Старые классы даты и времени общеизвестно хлопотны, и их следует избегать.
java.time
Java.time каркас встроен в Java 8 и более поздних версий. Смотрите Oracle Tutorial . Большая часть функциональности java.time перенесена в Jave 6 и 7 и далее адаптирована для Android .
LocalDate
Класс представляет собой дату только значение без времени суток и без временной зоны.
LocalDate localDate = LocalDate.of( 2012 , 12 , 7 );
Текстовое представление
toString
Метод создает строку , используя стандартный ISO 8601 формат.
localDate.toString () → 2012-12-07
Для других форматов используйте DateTimeFormatter
.
SQL
Драйверы JDBC совместимый с JDBC 4.2 может использовать getObject
и setObject
методы непосредственно выборки / передать типы java.time , такие , как LocalDate
для типа SQL DATE
.
Если ваш драйвер не может этого сделать, вернитесь к использованию типов java.sql. Новые методы были добавлены к старым классам, чтобы облегчить преобразование.
java.sql.Date sqlDate = java.sql.Date.valueOf( localDate );
И другое направление.
LocalDate localDate = sqlDate.toLocalDate();
Переполнение стека поиска
Поиск переполнения стека для многих других обсуждений и примеров использования java.time. Например, мой ответ на этот похожий вопрос .
Автор: Basil Bourque Размещён: 11.04.2016 03:432 плюса
Дата урока. Он содержит метку времени UNIX. В большинстве баз данных вы также можете указать поле для хранения метки времени. Вы можете использовать DateFormat для форматирования метки времени, как вы хотите.
Автор: jn1kk Размещён: 18.06.2012 01:152 плюса
Если вы используете Java 8, вы можете использовать java.time.LocalDate
.
1 плюс
1 плюс
Показывает, как держат только дату (без времени)
formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date= new Date();
Date todayWithOutTime =formatter.parse(formatter.format(date));
Автор: tostao
Размещён: 18.06.2012 01:25
1 плюс
К сожалению, java.util.Date
есть то, что в SQL есть имя Timestamp
. Нет чистого типа только для Date, он javax.sql.Date
расширяется, java.util.Date
и использование этого типа для манипулирования датой в Java не дает вам никаких преимуществ.
Я имею дело с этим с помощью commons-lang
класса Apache DateUtils
:
Date myDate = DateUtils.truncate(timestamp, Calendar.DAY_OF_MONTH);
Это удалит часть времени и оставит только часть даты.
Автор: Danubian Sailor Размещён: 18.06.2012 02:491 плюс
Вопросы из категории :
- java В чем разница между int и Integer в Java и C #?
- java Как я могу определить IP моего маршрутизатора / шлюза в Java?
- java Каков наилучший способ проверки XML-файла по сравнению с XSD-файлом?
- java Как округлить результат целочисленного деления?
- java Преобразование списка <Integer> в список <String>
- java Почему я не могу объявить статические методы в интерфейсе?
- java Библиотека Java SWIFT
- java Выключение компьютера
- java Как я могу воспроизвести звук на Java?
- java Когда выбирать отмеченные и непроверенные исключения
- java Какие проблемы следует учитывать при переопределении equals и hashCode в Java?
- java Java Swing: отображение изображений внутри Jar
- java Java: программный способ определения текущего пользователя Windows
- java Как настроить cookie HttpOnly в tomcat / java webapps?
- java Почему я получаю NoClassDefFoundError в Java?
- java Как исправить ошибку NoSuchMethodError?
- java Каковы различия между «универсальными» типами в C ++ и Java?
- java Как бороться с ошибкой «java.lang.OutOfMemoryError: Java heap space»?
- java Что такое рефлексия и почему она полезна?
- java Различия между HashMap и Hashtable?