此方法不适用于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);
答案 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常量。