Get month number from month name

后端 未结 4 1236
Happy的楠姐
Happy的楠姐 2020-12-17 14:34

I have this.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String monthName = br.readLine();

How to get mon

4条回答
  •  無奈伤痛
    2020-12-17 14:52

    Use Java's Calendar class. It can parse any given string into a valid calendar instance. Here is an example (assuming that the month is in english).

    Date date = new SimpleDateFormat("MMMM").parse(monthName);
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    println(cal.get(Calendar.MONTH));
    

    You can specify the language in SimpleDateFormat:

    String monthName = "März"; // German for march
    Date date = new SimpleDateFormat("MMMM", Locale.GERMAN).parse(monthName);
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    println(cal.get(Calendar.MONTH));
    

    By default, Java uses the user's local to parse the string.

    Keep in mind that a computer starts counting at 0. So, January will be 0. If you want a human readable date, you should format the calendar instance:

    SimpleDateFormat inputFormat = new SimpleDateFormat("MMMM");
    Calendar cal = Calendar.getInstance();
    cal.setTime(inputFormat.parse(monthName));
    SimpleDateFormat outputFormat = new SimpleDateFormat("MM"); // 01-12
    println(outputFormat.format(cal.getTime()));
    

提交回复
热议问题