我想定义一些常量,特别是在我的域可以存在之前的日期和日历。我有一些有效的代码,但它的丑陋。我正在寻找改进建议。
static Calendar working;
static {
working = GregorianCalendar.getInstance();
working.set(1776, 6, 4, 0, 0, 1);
}
public static final Calendar beforeFirstCalendar = working;
public static final Date beforeFirstDate = working.getTime();
我将它们设置为1776年7月4日。 我根本不想拥有“工作”变量。
由于
答案 0 :(得分:5)
我将它解压缩到一个方法(在util类中,假设其他类也想要这个):
class DateUtils {
public static Date date(int year, int month, int date) {
Calendar working = GregorianCalendar.getInstance();
working.set(year, month, date, 0, 0, 1);
return working.getTime();
}
}
然后简单地说,
public static final Date beforeFirstDate = DateUtils.date(1776, 6, 4);
答案 1 :(得分:4)
我不确定我理解......但这不起作用吗?
public static final Calendar beforeFirstCalendar;
static {
beforeFirstCalendar = GregorianCalendar.getInstance();
beforeFirstCalendar.set(1776, 6, 4, 0, 0, 1);
}
public static final Date beforeFirstDate = beforeFirstCalendar.getTime();
答案 2 :(得分:2)
使用XML字符串表示法可能更清楚。这更易于人类阅读,也避免了您想要消除的局部变量:
import javax.xml.bind.DatatypeConverter;
Date theDate = DatatypeConverter.parseDateTime("1776-06-04T00:00:00-05:00").getTime()