SimpleDateFormat在Android Kitkat中不起作用

时间:2018-10-12 12:10:55

标签: android android-4.4-kitkat android-version

此方法不适用于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 :(得分:1)

代码的安全性不会作为您的版本检查执行。因为Android Kitkat android N(牛轧糖)更早。

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

它将仅在N个及以上的OS设备上执行。

答案 1 :(得分:1)

在您的代码中,您使用Build.VERSION_CODES.N表示Android 牛轧糖,因此,当Android Kitkat 早于android N 时,{ {1}}不是正确的,但是因为android Oreo 比android牛轧糖Build.VERSION.SDK_INT >= Build.VERSION_CODES.N正确,因此if代码块中的代码可以正常工作。

您可以检查this link来查看android VERSION_CODES常量。