我以为我可以使用带有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
Thu Dec 25 00:00:00 EST 111
由于我不能使用上面尝试过的构造函数,并且没有GregorianCalendar
只需要 a的构造函数,Date
我怎样才能将java.sql.Date
对象转换为 a GregorianCalendar
?