android系统的更新,需要判断需要更新的编译时间,比现在系统的更新事件新。
这就涉及都 ro.build.date这个参数的内容。在开发的过程中,遇到无法解析这个
属性内容的情况。
英文版本的Ubuntu,在shell脚本中 输入date ,显示2017年 02月 21日 星期二 14:05:10 CST
一方面这样的格式中存在中文,另一方面在使用data.parse()进行解析的时候,会出现问题
使用 一下 echo date +%D
date +%T
能够显示出02/21/17 14:06:41 这样的形式
能进行解析
build/tools/buildinfo.sh
修改echo “ro.build.date=date
为
echo “ro.build.date=date +%D
date +%T
private static String getBuildTime() {
Xlog.v(TAG, "[getBuildTime]");
String buildTime = null;
// String time = Util.getFormattedKernelVersion();
String time = SystemProperties.get("ro.build.date");
try {
// if (!Util.ERROR_VERSION.equals(time)) {
Log.i(TAG, "[getBuildTime]version time = " + time);
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhhmmss", new Locale("US"));
Date versionTime = new Date(Date.parse(time));
buildTime = df.format(versionTime);
// } else {
// Log.e(TAG, "[getBuildTime]get build date error");
// }
} catch (NullPointerException e) {
Log.e(TAG,
"[getBuildTime]There is some NullPointerException accured parse date string!");
e.printStackTrace();
} catch (IllegalArgumentException e) {
Log.e(TAG, "[getBuildTime]There is some exception accured parse date string!");
e.printStackTrace();
}
return buildTime;
}