0

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

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

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

4

1 回答 1

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);
    }
}
于 2013-04-29T01:01:55.153 回答