2

line保存用户给出的月份名称。我想显示月份数。

例子:june -> 6

现在的代码:

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

最好的方法是什么?
编辑:
使用现有的日历类

4

3 回答 3

4

我建议您使用组合框或控制用户输入任何内容并将其映射到常量字段的控件。

然后你可以使用 GregorianCalendar

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

于 2013-08-19T19:06:23.350 回答
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){

    }

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

于 2013-08-19T19:17:30.883 回答
2

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

于 2013-08-19T19:06:06.223 回答