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

时间:2011-11-01 01:49:19

标签: java date calendar 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日。 我根本不想拥有“工作”变量。

由于

3 个答案:

答案 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()