SimpleDateFormat не работает в Android Kitkat - PullRequest
0 голосов
/ 12 октября 2018

Этот метод не работает для Android Kitkat, но работает в Android Oreo очень хорошо.

   public String parseDateToTime(String time) {

    String inputPattern = "dd/MM/yyyy hh:mm aa";
    String outputPattern = "hh:mm aa";
    SimpleDateFormat inputFormat = null;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        inputFormat = new SimpleDateFormat(inputPattern);
    }
    SimpleDateFormat outputFormat = null;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        outputFormat = new SimpleDateFormat(outputPattern);
    }

    Date date = null;
    String str = null;

    try {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            date = inputFormat.parse(time);
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            str = outputFormat.format(date);
        }


    } catch (ParseException e) {
        e.printStackTrace();
    }
    Log.d("timecon",str);

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

в своем коде вы использовали Build.VERSION_CODES.N, что означает Android Nougat , поэтому, когда Android Kitkat старше, чем Android N , Build.VERSION.SDK_INT >= Build.VERSION_CODES.N не будетправда, но потому что android Oreo новее, чем android Nougat Build.VERSION.SDK_INT >= Build.VERSION_CODES.N будет верным, и ваш код в случае, если блок будет работать.

вы можете проверить эту ссылку , чтобы увидетьAndroid VERSION_CODES константы.

0 голосов
/ 12 октября 2018

Мир кода не выполняется при проверке вашей версии.Поскольку Android Kitkat старше android N (Nougat).

Build.VERSION.SDK_INT >= Build.VERSION_CODES.N.

Он будет выполняться только на устройствах N и выше.

...