我在字符串变量中有相应的月份名称,例如 JANUARY 或 FEBRUARY。
现在如何使用这个 String 变量在 java 中设置 Calendar 对象的月份。
我尝试通过 calendar.set 方法进行设置,但它只需要 int 值。
我在字符串变量中有相应的月份名称,例如 JANUARY 或 FEBRUARY。
现在如何使用这个 String 变量在 java 中设置 Calendar 对象的月份。
我尝试通过 calendar.set 方法进行设置,但它只需要 int 值。
您可以使用反射来提取字段的值(参见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);
}
}