2014-01-06 3 views
-1

У меня есть эта строкаКак получить номер месяца из строки месяца в Java?

23/Gennaio/2014

и мне нужна эта другая строка

23/01/2014

Я пытался используя joda.time:

DateTimeFormatter format = DateTimeFormat.forPattern("dd/MMM/yyyy").withLocale(Locale.ITALY); 
DateTime instance = format.parseDateTime("23/Gennaio/2014"); 
String month_number = String.valueOf(instance.getMonthOfYear()); 

Но я получаю это исключение:

01-06 13: 31: 55.341: E/AndroidRuntime (1116): java.lang.IllegalArgumentException: Invalid формат: "23/Gennaio/2014"

Что мне не хватает?

+0

МММ означает короткую форму, например месяц JAN, FEB. То, что вы хотите, это длинная форма, MMMM. –

ответ

4

кажется, ожидать название месяца в нижнем регистре (не знаю, почему):

DateTime instance = format.parseDateTime("23/Gennaio/2014".toLowerCase(Locale.ITALIAN)); 

должен работать лучше.

1

23/Gennaio/2014 не является допустимой строкой даты, подлежащей анализу.
Попробуйте 23/Gennaio/2014 и попытаться разобрать его в формате "дд/MMMM/гггг" (добавить M)

1

почему не чистый Java?

SimpleDateFormat formatIn = new SimpleDateFormat("dd/MMM/yyyy", Locale.ITALY); 
Date instance = formatIn.parse("23/Gennaio/2014"); 
SimpleDateFormat formatOut = new SimpleDateFormat("dd/MM/yyyy", Locale.ITALY); 

System.out.println(formatOut.format(instance)); 

String month_number = String.valueOf(instance.getMonth()); //DEPRECETDE USE CALENDAR 

результат "23/01/2014"

0

Используйте этот код

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    String dateString = "23/Gennaio/2014"; 


    Log.i("meenal","Date 2:"+localizeDate(dateString, Locale.ITALY)); 


} 

private String localizeDate(String inputdate, Locale locale) { 

    Date date = new Date(); 
    SimpleDateFormat dateFormatCN = new SimpleDateFormat("dd/MMM/yyyy", locale);  
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); 


    try { 
     date = dateFormatCN.parse(inputdate); 

     Log.i("meenal", "Date:"+date); 
    } catch (Exception e) { 
     Log.e("meenal", e.getMessage(),e); 
     return inputdate; 
    } 
    return dateFormat.format(date); 
} 
+0

результат будет 23/01/2014 – Meenal

Смежные вопросы