静的初期化ブロックを使用できます。
public static final Date MY_DATE;
static {
try {
MY_DATE = Util.getDateFromString("20000101");
} catch (ParseException e) {
// Whatever you want to do here. You might want to throw
// an unchecked exception, or you might want to use some fallback value.
// If you want to use a fallback value, you'd need to use a local
// variable for the result of parsing, to make sure you only have a
// single assignment to the final variable.
}
}
ただし、これには反対することをお勧めします。Date
変更可能な型です - public static final 変数を介して公開するのは悪い考えです。
Java 8 の時点で、java.time
パッケージはほぼすべての日付/時刻の作業に使用するのに最も適しています。
public static final LocalDate START_OF_JANUARY_2000 = LocalDate.of(2000, 1, 1);
Java 8 より前では、多くの不変の日付/時刻型を持ち、日付と時刻を操作するための完全に優れたライブラリであるJoda Timeを使用することをお勧めします。あなたが望むように見えます:
public static final LocalDate START_OF_JANUARY_2000 = new LocalDate(2000, 1, 1);
を使用することにした場合でも、私の見解で文字列を解析することはあまり意味がないことに注意してください。java.util.Date
年/月/日 (おそらく適切なタイムゾーンを適用する) からを作成する適切な方法がない場合は、Date
簡単に作成できます。