修改状态栏中控制时间的类HoloClock.java的方法getTimeText()进行修改,判断时间是否为24小时制,若是则直接返回时间若不是则判断是上午还是下午,上午的话添加AM,下午添加PM。
private final CharSequence getTimeText() {
Context context = getContext();
int res = DateFormat.is24HourFormat(context)
? com.android.internal.R.string.twenty_four_hour_time_format
: com.android.internal.R.string.twelve_hour_time_format;
SimpleDateFormat sdf;
String format = context.getString(res);
if (!format.equals(mClockFormatString)) {
// we don’t want AM/PM showing up in our statusbar, even in 12h mode
format = format.replaceAll(“a”, “”).trim();
mClockFormat = sdf = new SimpleDateFormat(format);
mClockFormatString = format;
} else {
sdf = mClockFormat;
}
String result = sdf.format(mCalendar.getTime());
//2012-9-14 START can not show AM\BM in 12hour
//return result;
if(DateFormat.is24HourFormat(context)){
return result;
}else{
String ampmValues;
if(mCalendar.get(Calendar.AM_PM) == 0){
ampmValues = “AM”;
}else{
ampmValues = “PM”;
}
return result+” “+ampmValues;
}
//2012-9-14 END can not show AM\BM in 12hour
}
修改锁屏界面控制时间的类DigitalClock.java的方法updateTime(),同上判断时间是否为24小时制和是上午还是下午。
private void updateTime() {
mCalendar.setTimeInMillis(System.currentTimeMillis());
CharSequence newTime = DateFormat.format(mFormat, mCalendar);
//2012-9-14 START can not show AM\BM in 12hour
Context context = getContext();
String ampmValues;
if(DateFormat.is24HourFormat(context)){
ampmValues = “”;
}else{
if(mCalendar.get(Calendar.AM_PM) == 0){
ampmValues = ” AM”;
}else{
ampmValues = ” PM”;
}
}
newTime = newTime+ampmValues;
//2012-9-14 END can not show AM\BM in 12hour
mTimeDisplayBackground.setText(newTime);
mTimeDisplayForeground.setText(newTime);
mAmPm.setIsMorning(mCalendar.get(Calendar.AM_PM) == 0);
}