Android 6.0 平台(Settings下去掉了日期格式选项),如何更改系统日期默认格式及锁屏界面和下拉状态栏日期格式修改

 Android 6.0 平台,如何更改系统日期默认格式及锁屏界面和下拉状态栏日期格式修改

展讯Android_6.0平台,Settings模块 Date & Time 选项下,去掉了日期默认格式的选项即:MM-dd-yyyy及dd-MM-yyyy和yyyy-MM-dd三种格式;现客户需求是:”dd-MM-yyyy”。

好了,各种曲折就不说了,干货来。

个人认为:日期默认格式主要体现在:(1)开机向导中Date & Time 日期格式;(2)锁屏界面及下拉状态栏,日期格式显示。

一、开机向导中Date & Time 项,日期格式要求:”dd-MM-yyyy”

(1).修改点:External/icu/icu4c/source/data/locales/ 目录下 en.txt 文件

此项修改是针对在默认英语语言环境下,开机向导开机Date & Time的选项。

修改点:

1). 修改资源文件en.txt。

gregorian{
     ……….
    DateTimePatterns{
                ……………
                “EEEE, MMMM d, y”,
                “MMMM d, y”,
                “MMM d, y”,
             –   “M/d/yy”,
            +  “d/M/yy”,
                “{1}, {0}”,

……………
如需要修改其他语言环境下的格式(如中文)请修改同目录下的zh.txt文件中相同位置(允许我复制一段代码)。


2). 修改en.txt文件后,编译出 xxx.dat文件

如何编译,方法如下:

a). 合入external/icu里的修改后进入到 external/icu/icu4c/source目录执行makeData.sh脚本。

【即在external/icu/icu4c/source下执行  sh makeData.sh  命令】(此命令会修改external/icu/icu4c/source/stubdata/icudt53l.dat文件)

b). 执行完命令后  快速验证的方法为把external/icu/icu4c/source/stubdata/下icudt53l.dat的文件push到手机的system/usr/icu目录下重启手机即可验证)
【命令:adb push icudt53l.dat system/usr/icu
           adb reboot】如何push不成功,就直接全编译把,不要纠结,因为有时在服务器上,是没有权限的,adb remount 不会成功,所以不要一

直纠结在这里。

到这里,第一步修改开机向导,日期格式修改已经成功,但是还不够,因为锁屏界面和下拉状态栏仍然是系统默认的格式。


二、锁屏界面和下拉状态栏显示”dd-MM-yyyy”

(1).修改锁屏界面

a. 修改文件点:framework/base/packages/Keyguard/src/com/android/keyguard/keyguardStatusView.java

private static final Class Patterns{

……….

static void update(Context context,boolean hasAlarlm){

//对dateView 进行截取,直接修改为:dateView = “EEEE, d MMMM”(d前面和后面都有一个空格,这样显示会更加美观)

……….

  if (key.equals(cacheKey)) return; 
           
dateView = DateFormat.getBestDateTimePattern(locale, dateViewSkel); 

dateViewdateView = “EEEE, d MMMM”;

……….

(2).修改下拉状态栏

b.修改文件点:framework/base/packages/SystemUI/src/com/android/systeui/startubar/policy/DateView.java

……….
  protected void updateClock() { 
        if (mDateFormat == null) { 
            final Locale l = Locale.getDefault(); 
          –   final String fmt = DateFormat.getBestDateTimePattern(l, mDatePattern);

//截取fmt
          +  String fmt = DateFormat.getBestDateTimePattern(l, mDatePattern); 
          +  fmt = “EEEE, d MMMM“; 
            mDateFormat = new SimpleDateFormat(fmt, l);

………. 
        } 


好了,到这里应该就基本完成任务了,如何需要在锁屏界面日期年份,可以查阅资料,在资源文件中更改就可以了,具体哪个资源文件,可以百度一下

会很容易得到答案。

    原文作者:WL8721
    原文地址: https://blog.csdn.net/WL8721/article/details/53617376
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞