用Java设置Calendar对象

时间:2013-04-29 00:29:23

标签: java

我在字符串变量中有相应的月份名称,例如JANUARY或FEBRUARY。

现在如何使用此String变量在java中设置Calendar对象的月份。

我尝试通过calendar.set方法进行设置,但它只需要int值。

1 个答案:

答案 0 :(得分:0)

您可以使用反射来提取字段的值(请参阅monthValue()函数)。

public class Main {
    public static void main(String[] args)
            throws NoSuchFieldException, IllegalAccessException {
        Calendar c = Calendar.getInstance();
        c.set(Calendar.MONTH, monthValue("January"));
        System.out.println(c.getTime());
    }

    public static int monthValue(String monthName)
            throws NoSuchFieldException, IllegalAccessException {
        Field monthConstant = Calendar.class.getField(monthName.toUpperCase());
        return monthConstant.getInt(null);
    }
}