Я думал, что смогу создать GregorianCalendar
с помощью конструктора, который принимает год, месяц и день, но я не могу надежно получить эти поля из экземпляра класса java.sql.Date
. Методы, которые получают эти значения из java.sql.Date
, устарели, и следующий код показывает, почему они не могут быть использованы:
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
?