Как проанализировать дату? [дубликат]

Если у вас есть Android Studio, вы должны изменить build.gradle вашего основного приложения.

В вашем файле Gradle вы должны указать использование proguard-android-optimize.txt в качестве файла по умолчанию.

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

        // With the file below, it does not work!
        //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

На самом деле, в файле proguard-android.txt по умолчанию оптимизация отключена с двумя флагами:

-dontoptimize
-dontpreverify

Файл proguard-android-optimize.txt не добавляет эти строки, поэтому теперь assumenosideeffects может работа.

Затем, как сказано в других ответах на Eclipse или просто, вам просто нужно добавить в ваш основной файл proguard строку:

-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** e(...);
}
177
задан Nathaniel Ford 1 July 2013 в 17:12
поделиться

3 ответа

Вы не можете рассчитывать на синтаксический анализ даты с помощью SimpleDateFormat, для которого задан другой формат.

Для синтаксического анализа строки даты «Thu Jun 18 20:56:02 EDT 2009» вам понадобится SimpleDateFormat, подобный этому (примерно):

SimpleDateFormat parser=new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");

Используйте это, чтобы преобразовать строку в Date, а затем другой ваш SimpleDateFormat, чтобы превратить укажите дату в желаемом формате.

        String input = "Thu Jun 18 20:56:02 EDT 2009";
        SimpleDateFormat parser = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");
        Date date = parser.parse(input);
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        String formattedDate = formatter.format(date);

        ...

JavaDoc: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

239
ответ дан 23 November 2019 в 20:19
поделиться

Как насчет getSelectedDate ? В любом случае, конкретно в вопросе кода, проблема связана с этой строкой:

new SimpleDateFormat("yyyy-MM-dd");

Строка, которая идет в конструктор, должна соответствовать формату даты. Документация о том, как это сделать, находится здесь . Похоже, вам нужно что-то вроде "EEE MMM d HH: mm: ss zzz yyyy"

12
ответ дан 23 November 2019 в 20:19
поделиться

Проблема в том, что у вас есть дата, отформатированная следующим образом:

Thu Jun 18 20:56:02 EDT 2009

Но вы используете SimpleDateFormat , то есть:

yyyy-MM-dd

Эти два формата не совпадают. Вам необходимо создать SimpleDateFormat , который соответствует макету строки, которую вы пытаетесь преобразовать в Date. Чтобы упростить просмотр, вам нужен SimpleDateFormat вроде этого:

EEE MMM dd HH:mm:ss zzz yyyy
Thu Jun 18 20:56:02 EDT 2009

Проверьте страницу JavaDoc, на которую я ссылаюсь, и посмотрите, как используются символы.

50
ответ дан 23 November 2019 в 20:19
поделиться
Другие вопросы по тегам:

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