У меня проблема в Java с датой sql.У меня есть значение year-y, month-m, day-d Я создаю новую Date (y, m, d), но он говорит, что этот конструктор устарел и возвращает неправильную дату, как я могу правильно установить дату, имея y, м, д?
Согласно API ,
Начиная с версии 1.1 JDK, заменено на Calendar.set (год + 1900, месяц, дата) или GregorianCalendar (год + 1900,месяц, дата).
Использовать календарь.
Calendar c = Calendar.getInstance(); c.set(Calendar.DAY_OF_MONTH, d); c.set(Calendar.MONTH, m); c.set(Calendar.YEAR, y);
Тогда, если вам нужно использовать даты, то вы можете сделать следующее -
Date d = c.getTime();
Используйте класс Calendar:
Calendar cal = Calendar.getInstance(); cal.set(year, month, date); java.sql.Date date = new java.sql.Date(cal.getTimeInMillis());
Calendar c = Calendar.getInstance(); c.set(year, month, date); Date d = c.getTime();
Вот как вы можете конвертировать между ними:
new java.util.Date(sqlDate.getTime());
Вы должны использовать public Date(long date), где date - это число миллисекунд с 1 января 1970 года, 00:00:00 по Гринвичу
public Date(long date)
date
. В вашем случае вы также можете использовать:
Date mydate = Date.valueOf("2011-05-04"); // yyyy-mm-dd