我有这个.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String monthName = br.readLine();
Run Code Online (Sandbox Code Playgroud)
如何获取monthName变量中包含的月份数?谢谢!
Mat*_*o12 26
使用Java的Calendar类.它可以将任何给定的字符串解析为有效的日历实例.这是一个例子(假设月份是英文).
Date date = new SimpleDateFormat("MMMM").parse(monthName);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
println(cal.get(Calendar.MONTH));
Run Code Online (Sandbox Code Playgroud)
您可以在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));
Run Code Online (Sandbox Code Playgroud)
默认情况下,Java使用用户的local来解析字符串.
请记住,计算机从0开始计数.因此,1月将为0.如果您想要人类可读日期,则应格式化日历实例:
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()));
Run Code Online (Sandbox Code Playgroud)
Yur*_*kha 11
Java 8中的解决方案,用于英文月份名称.
private int getMonthNumber(String monthName) {
return Month.valueOf(monthName.toUpperCase()).getValue();
}
Run Code Online (Sandbox Code Playgroud)