Как мне преобразовать объект java.sql.Date в GregorianCalendar?

Я думал, что смогу создать GregorianCalendar , используя конструктор, который принимает год, месяц и день, но я не могу надежно получить эти поля из экземпляра класс java.sql.Date . Методы, которые получают эти значения из java.sql.Дата устарела, и следующий код показывает, почему их нельзя использовать:

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 :

Year: 111
Месяц: 11
День: 25
2011-12-25
Чт, 25 декабря, 00:00:00 EST 111

Поскольку я не могу использовать конструктор, который я пробовал выше, и нет конструктора GregorianCalendar , который просто принимает Date , как могу ли я преобразовать объект java.sql.Date в GregorianCalendar ?

20
задан Bill the Lizard 2 February 2012 в 16:24
поделиться