Java API)によれば、コンストラクターDate(year, month, day)
は減価償却されています。これを次のコードに置き換えることができることを知っています。
Calendar myCal = Calendar.getInstance();
myCal.set(Calendar.YEAR, theYear);
myCal.set(Calendar.MONTH, theMonth);
myCal.set(Calendar.DAY_OF_MONTH, theDay);
Date theDate = myCal.getTime();
ただし、短いもの(理想的には1〜2行)に置き換えたいと思います。
new GregorianCalendar(theYear, theMonth, theDay)
.getTime()
を使用できます。
public GregorianCalendar(int year, int month, int dayOfMonth)
デフォルトロケールのデフォルトタイムゾーンに設定された指定された日付でGregorianCalendarを構築します。
使用できます
new SimpleDateFormat( "yyyyMMdd" ).parse( "20100520" )
これは Joda Time を使用するもう1つの理由です
new DateMidnight(2010, 3, 5)
DateMidnightは非推奨になりましたが、Joda Time DateTime
でも同じ効果が得られます
DateTime dt = new DateTime(2010, 3, 5, 0, 0);
カレンダーには、1回の呼び出しで年、月、および日を設定できる set() メソッドがあります。
myCal.set( theYear, theMonth, theDay );
単純なユーティリティメソッドを作成してみませんか。
public final class DateUtils {
private DateUtils() {
}
public static Calendar calendarFor(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, day);
return cal;
}
// ... maybe other utility methods
}
そして、あなたのコードの残りのどこでもそれを呼び出します:
Calendar cal = DateUtils.calendarFor(2010, Calendar.MAY, 21);
Date date = new DateTime(2014, 6, 20, 0, 0).toDate();
DateTimeはJoda.orgから https://www.joda.org/joda-time/apidocs/org/joda/time/DateTime.html
コンストラクタDate(year,month,date)
in Java 8を使用してください。これは非推奨です:
Date date = new Date(1990, 10, 26, 0, 0);
最良の方法は、SimpleDateFormat
を使用することです
DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Date date = format.parse("26/10/1985");
インポートする必要があるimport Java.text.SimpleDateFormat;