почему два класса даты один в java.util.Date и java.sql.Date? - PullRequest
7 голосов
/ 20 января 2010

HI Мне нравится знать, почему существуют два класса Date в двух разных пакетах: один в java.util.Date и один в java.sql.Date? Какая польза от двух классов Date?

Ответы [ 3 ]

11 голосов
/ 20 января 2010

java.util.Date - тип данных Java для даты.

java.sql.Date - оболочка JDBC для дат SQL.

Они представлены внутренне совершенно по-разному.

.NET имеет те же понятия (но, на мой взгляд, более удобное соглашение об именовании, позволяющее их различать) с System.DataTime и System.Data.SqlTypes.SqlDateTime

3 голосов
/ 21 января 2010

java.sql.Date является подклассом (расширением) java.util.Date.
Что изменилось в java.sql.Date:

  1. toString() генерирует другое строковое представление: yyyy-mm-dd
  2. статические valueOf(String) методы для создания даты из строки с представлением выше
  3. геттеры и сеттеры для часов, минут и секунд устарели

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

3 голосов
/ 20 января 2010

java.sql.Date

Тонкая оболочка со значением в миллисекундах , позволяющая JDBC идентифицировать его как значение SQL DATE . Значение в миллисекундах представляет количество миллисекунд, прошедших с 1 января 1970 года 00: 00: 00.000 по Гринвичу.

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