Использование конструктора java.sql.Date с длинным значением - PullRequest
3 голосов
/ 23 января 2012

Устаревший java.sql.Date конструктор был гораздо более интуитивно понятен - Date(int year, int month, int day).Но теперь мы обязаны использовать новый java.sql.Date (длинная дата).

Я не могу найти в документации о том, как самому написать реальную длинную дату.Есть ли другой подход к построению даты SQL в Java, кроме использования java.util.Date().getTime()?

Ответы [ 3 ]

3 голосов
/ 23 января 2012

Причина, по которой Date (год, месяц, день) устарела, заключается в том, что он не знает языковой стандарт.Если вы хотите просто использовать стандартные классы Java, стандартным способом является Calendar.getInstance, а затем установите год, месяц и день, используя методы .set полученного Календаря.Однако, как я узнал за 3 года StackOverflow, лучше использовать Joda .

1 голос
/ 13 июня 2015

Вот быстрый и простой способ создать java.sql.Date из года, месяца и дня.Он форматирует строку даты и использует Date.valueOf (String).

/** 
* Create a java.sql.Date from from year, month, and day of the month.
*/
private java.sql.Date createSqlDate(int year, int month, int day) {

    // Create a date string with leading zeros for month and day.
    String dateString = String.format("%d-%02d-%02d", year, month, day);

    return java.sql.Date.valueOf(dateString);
}
0 голосов
/ 23 января 2012

Я думаю, что jdk альтернативой конструктору (год, месяц, день) будет использование класса Calendar, который немного более громоздок, поскольку вам нужно устанавливать поля независимо.

Однако, как упоминал Пол,Использование Joda Time - отличная альтернатива, если вы можете добавить jar в свой проект.

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