Преобразуйте строку месяца в целое число в Java

Учитывая строку месяца, такую как:

    "Feb"
or
    "February"

Есть ли базовая функциональность библиотеки Java или третьего лица, которая позволила бы Вам преобразовывать эту строку в соответствующее число месяца в агностике локали путь?

29
задан Nathan 12 January 2016 в 17:18
поделиться

3 ответа

альтернатива использованию 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
27
ответ дан 28 November 2019 в 00:54
поделиться

Вы можете разобрать месяц с помощью 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 ).

44
ответ дан 28 November 2019 в 00:54
поделиться
3
ответ дан 28 November 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: