Я думал, что смогу создать GregorianCalendar
, используя конструктор, который принимает год, месяц и день, но я не могу надежно получить эти поля из экземпляра класса java.sql.Date
. Методы, которые получают эти значения из java.sql.Date
являются устаревшими, и следующий код показывает, почему они не могут быть использованы:Как преобразовать объект java.sql.Date в GregorianCalendar?
import java.sql.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class DateTester {
public static void main(String[] args) {
Date date = Date.valueOf("2011-12-25");
System.out.println("Year: " + date.getYear());
System.out.println("Month: " + date.getMonth());
System.out.println("Day: " + date.getDate());
System.out.println(date);
Calendar cal = new GregorianCalendar(date.getYear(), date.getMonth(), date.getDate());
System.out.println(cal.getTime());
}
}
Вот результат, показывающий, что месяц и год правильно не вернулся из осуждается getYear()
и getMonth()
методы Date
:
Год: 111
месяц: 11
день: 25
2011-12-25
Чт 25 декабря 00:00:00 EST 111
Поскольку я не могу использовать конструктор, который я пытался выше, и нет GregorianCalendar
конструктор, который просто принимает Date
, как я могу преобразовать java.sql.Date
объект в GregorianCalendar
?
Откуда произошел переход от rs.getDate()? –
sorry - rs - это имя переменной, которое я всегда даю объектам ResultSet, - это просто представит экземпляр java.sql.Date, который вы уже создали. – DaveH
Не самый конкретный ответ, но +1 для следующих стандартов, которые сделали именно точный код, который я искал. – KjetilNordin