I have this.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String monthName = br.readLine();
How to get month number which contain in monthName variable? Thanks!
Advertisement
Answer
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", Locale.ENGLISH).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()));