此方法不适用于 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/