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
受け取るだけのコンストラクターがないため、オブジェクトをDate
に変換するにはどうすればよいですか?java.sql.Date
GregorianCalendar