Помогите решить проблему с DateFormat в AndroidStudio

Рейтинг: 2Ответов: 1Опубликовано: 06.12.2014

На рабочем компьютере пишу проект в AndroidStudio и там он работает хорошо, решил импортировать в AndroidStudio на домашний комп и столкнулся с проблемой в DateFormat этот метод переводит дату, типа "4 Декабря 2014 17:03" в long, типа 140764890000. Вот на работе он это делает на ура, а дома пишет :

W/System.err﹕ java.text.ParseException: Unparseable date: "4 Декабря 2014 17:03" (at offset 2) W/System.err﹕ at java.text.DateFormat.parse(DateFormat.java:626)

public long dateToLong(){
    Date df;
    try {
        df = new SimpleDateFormat("dd MMMM yyyy HH:mm", myDateFormatSymbols).parse(mDate);
        datetolong = df.getTime();

    } catch (ParseException e) {
        e.printStackTrace();
    }
    Log.d(MyLog.LOG_TAG, " Formated Date " + datetolong);

    return datetolong;
}

private static DateFormatSymbols myDateFormatSymbols = new DateFormatSymbols() {

    @Override
    public String[] getMonths() {
        return new String[]{"Января", "Февраля", "Марта", "Апреля", "Мая", "Июня",
                "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря"};
    }

};

Обновление

Обратил внимание на следующее: на андройде ниже 4.2 работает, а вот начиная с 4.2 нет и даже на рабочем. Ещё, что касается 4.2, если смотреть в сам DateFormate class, то имеются проблемы с импортом следующих библиотек

import libcore.icu.ICU;
import libcore.icu.LocaleData;

Ответы

▲ 2Принят
    SimpleDateFormat format = new SimpleDateFormat("d MMMM yyyy HH:mm", new Locale("ru"));
    format.setDateFormatSymbols(myDateFormatSymbols);
    Date df = format.parse("4 Декабря 2014 17:03");
    System.out.println(df.getTime());
    System.out.println(format.format(df));

@smilemakc документация Найдете там таблицу с примерами и все увидите. Где M/MM - подставляется число. Где MMM - сокращение. и т.д. Я не разбирался, мб и MMMM подойдет.

UPD: и MMMM подходит