Учитывая строку месяца, такую как:
"Feb"
or
"February"
Есть ли базовая функциональность библиотеки Java или третьего лица, которая позволила бы Вам преобразовывать эту строку в соответствующее число месяца в агностике локали путь?
альтернатива использованию SimpleDateFormat время Joda:
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
...
// if default locale is ok simply omit '.withLocale(...)'
DateTimeFormatter format = DateTimeFormat.forPattern("MMM");
DateTime instance = format.withLocale(Locale.FRENCH).parseDateTime("août");
int month_number = instance.getMonthOfYear();
String month_text = instance.monthOfYear().getAsText(Locale.ENGLISH);
System.out.println( "Month Number: " + month_number );
System.out.println( "Month Text: " + month_text );
OUTPUT:
Month Number: 8
Month Text: August
Вы можете разобрать месяц с помощью SimpleDateFormat:
Date date = new SimpleDateFormat("MMM", Locale.ENGLISH).parse("Feb");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int month = cal.get(Calendar.MONTH);
System.out.println(month == Calendar.FEBRUARY);
Будьте осторожны, сравнивая int month
с int (это не не равно 2!). Безопаснее всего сравнивать их с помощью статических полей Calendar
(например, Calendar.FEBRUARY
).