如何从日历中获取月份数

时间:2013-08-19 19:00:54

标签: java

line包含用户提供的月份名称。我想显示月份编号。

示例:june -> 6

现在代码:

String line="june";
int monthNo = Integer.parseInt(GregorianCalendar.class.getField(line.toUpperCase()).get(line))+1;
System.out.println(monthNo);

这样做的最佳方法是什么?
修改
使用现有的日历类

3 个答案:

答案 0 :(得分:4)

我建议你使用一个组合框,或一个限制用户输入任何内容的控件,并将其映射到一个恒定的字段。

然后你可以使用GregorianCalendar

int selectedMonth = c.get(Calendar.MONTH) + 1;(从索引开始时为+1) (c是GregorianCalendar的实例)

答案 1 :(得分:3)

只是为了用Calendar这样做,我将提供这个解决方案。

    DateFormat df = new SimpleDateFormat("MMMM");
    try {
        Date date = df.parse("july");
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        System.out.print(cal.get(Calendar.MONTH));
    } catch (Exception e){

    }

请注意,这根本不是最好的方法,我建议您使用枚举。

答案 2 :(得分:2)

Java的日历API并不是最好的API。因此,许多人改为使用http://www.joda.org/joda-time/作为准替代标准。但是如果您的应用程序非常简单,我认为硬编码指向数字的名称映射将是最简单和最有效的解决方案(假设,您的字符串实际上是用户输入,否则,使用建议的枚举)。或者,您可以使用date format