微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 如何修改设置中待选 的日期格式

如何修改设置中待选 的日期格式

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]

在设置-》日期格式-》选择日期格式的时候,会看到有1个默认的日期格式和6个其他格式。如何修改默认的日期格式,即Regional,请移步FAQ:FAQ04421 ;

如何修改其他6个日期格式,或者想要增加新的自定义的日期格式,请参考本FAQ。



[SOLUTION]

日期格式选择时,弹出窗口中的日期格式是从R.array.date_format_values中拿到的。

文件:package/apps/Settings/res/values/arrays.xml (所有语言都是这个文件)

描述:

<string-array name="date_format_values" translatable="false">
<!-- The blank item means to use whatever the locale calls for. -->
<item></item>
<item>MM-dd-yyyy</item>
<item>dd-MM-yyyy</item>
<item>yyyy-MM-dd</item>
<item>EE-MMM-d-yyyy</item>
<item>EE-d-MMM-yyyy</item>
<item>yyyy-MMM-d-EE</item>
</string-array>

第一个空的item即为默认的日期格式,请不要修改;

第2-7个对应显示出来的6个日期格式,可以修改,也可以增加新的格式。

需要注意的是,在格式中只能用系统能够识别的字符来制定格式,yyyy是年份,MM是月份,dd是日,EE是星期几。

相关逻辑:
然后,在DateFormat的getDateFormatStringForSetting方法中,对取得的格式进行了处理,对于每一项都会进行替换处理。

比如对于yyyy-MMM-d-EE这个格式,在系统语言为中文时,就会找到
Donottranslate-cldr.xml (mediatek\php?mod=tag&id=6090" target="_blank" class="relatedlink">Frameworks\base\res\res\values-zh-rCN)中的下面这一项

<string name="year_month_day_wday">"%s年 %s %s日, %s"</string>
这样显示到界面上就是“2013年12月31日,星期一”

对于 KK和L 版本定义在:

frameworks\base\core\res\res\values-zh-rCN\donottranslate-cldr.xml中的numeric_date_template;

对于非中文的其他语言,会调用Donottranslate-cldr.xml (mediatek\frameworks\base\res\res\values)中的对应字符串进行替换。

所以中文和其他语言是不一样的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top