android - SimpleDateFormat 在 Android Kitkat 中不起作用

标签 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);

最佳答案

在您的代码中,您使用了 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 将为真,您在 if block 中的代码将起作用。

可以查看this link查看 android VERSION_CODES 常量。

关于android - SimpleDateFormat 在 Android Kitkat 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52779270/

相关文章:

android - 放大 KitKat WebView 后不再有文本重排

java - 内部静态类的新实例在 Lollipop 之前的设备中具有不同顺序的变量

android - 应用程序在 android 2.3.7 中工作正常,而不是在 4.1.2 中

android - 如何在 ListView 中制作节标题,并滑动以使用撤消选项删除项目

java - 尝试创建 SQLite 数据库时出现 NullPointerException - Android

android - Kotlin 中的按钮数组

Android ADB无需root即可访问应用程序数据库

ssl - 在安卓 Lollipop 上进行RSA解密

android - 以编程方式检查 api 版本 ICS 不起作用

flutter - 带 flutter 的最低安卓版本