Ну, вы могли бы использовать статический блок инициализатора:
public static final Date MY_DATE;
static {
try {
MY_DATE = Util.getDateFromString("20000101");
} catch (ParseException e) {
...
}
}
Однако я бы посоветовал против этого. Date
является изменяемым типом - выставлять его через открытую статическую переменную final - плохая идея.
Вместо этого я бы порекомендовал вам использовать Joda Time , который имеет много неизменных типов даты / времени - и является значительно лучшей библиотекой для работы с датами и временем. Похоже, вы хотели бы:
public static final LocalDate START_OF_JANUARY_2000 = new LocalDate(2000, 1, 1);
Обратите внимание, что даже если вы do решите пойти с java.util.Date
, не имеет смысла анализировать строку в моем представлении - вы знаете значения численно, так почему бы просто не предоставить их сюда? Если у вас нет подходящего метода для построения Date
из года / месяца / дня (предположительно с применением соответствующего часового пояса), то вы могли бы легко написать один.