定义Java常量日期的最佳方法

fis*_*rds 5 java calendar date constants

我想定义一些常量,特别是我的域可以存在之前的日期和日历.我有一些有效的代码,但它的丑陋.我正在寻找改进建议.

    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日.我宁愿根本没有"工作"变量.

谢谢

Dav*_* L. 7

我不确定我是否理解....但这行不通吗?

public static final Calendar beforeFirstCalendar;
static {
    beforeFirstCalendar = GregorianCalendar.getInstance();
    beforeFirstCalendar.set(1776, 6, 4, 0, 0, 1);
}
public static final Date beforeFirstDate = beforeFirstCalendar.getTime();
Run Code Online (Sandbox Code Playgroud)


avh*_*avh 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();
  }
}
Run Code Online (Sandbox Code Playgroud)

那简单地说,

public static final Date beforeFirstDate = DateUtils.date(1776, 6, 4);
Run Code Online (Sandbox Code Playgroud)