MTK 时间 时区问题解决方案
1.俄罗斯时区问题
2014年10月26日开始,俄罗斯全国时区将在目前基础上向后推迟一个小时并且由之前的9个时区也扩充到11个.以首都莫斯科为例,目前时间比格林尼治时间早4个小时,10月26日之后,莫斯科时间将比格林尼治时间早3个小时.最为直观的是,把手机时间从2014年10月26日之前调整到之后Moscow时区将由GMT:+4变成GMT:+3,Sakhalin时区从GMT:+11变成GMT:+10.由于目前androidL之前的版本Google没有主动更新时区文件,这样我们必须去修改相关文件适应这一改变.
2.夏令时,时间更新方式
一、夏令时
夏时令(Daylight Saving Time:DST),又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮早的夏季人为将时间提前一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个国家具体夏令时规定不同。比如美国芝加哥时区夏时制开始时间:2014-3-9 2:00:00夏时制结束时间:2014-11-2 2:00:00;俄罗斯从2014年10月26日起取消自2011年开始使用的夏令时,转变为“冬季时间”,未来也不再使用冬夏时制转换。
如果发现系统时区和预想的时区或者当地时区相差一个小时,原因可能是夏令时制的问题:
可以通过下面2中方法确认:
1、可以网上查询该时区是否有夏令时,然后查看当前的系统时间是否在此时区的夏令时执行时间段内。
2、调整手机系统日期,看看时区时差是否有变化。比如手机时区为芝加哥时区,系统时间为8月15日,显示GMT:-5,如果系统时间调整为12月1日,将会显示GMT:-6。
二、Android时间、时区更新方式
在目前Android版本,通过网络同步时间有两种方式:NITZ和NTP。NITZ是否支持取决于SIM的运行商,目前国内运行商还不支持。NTP是通过网络获取网络时间,只要手机可以正常联网就可以更新时间。
如果勾选Setting里面的自动更新时间没有效果:
说明通过NITZ和NTP方式都无法更新时间,一般来说是在运营商不支持NITZ,或者网络状况有问题时发生,比如手机没有连上WIFI或GPRS,不能访问互联网,或者手机网络访问NTP server延时太大,或者NTP server地址配置不正确等。
1、如何验证运营商是否支持NITZ消息呢?
可以使用该SIM卡在对比机中测试,如果对比机也无法更新时间,说明,此卡运营商不支持nitz消息。
2、如何确认是手机是否可以正常访问互联网
可以打开一个网页,看看是否可以正常打开。
如果sim运行商支持NITZ消息或者手机可以正常联网,还是无法更新时间,需要根据log分析具体的原因,如何分析可以参考问题分析模块
需要注意的是NTP只更新时间,不会更新时区。
3.AM/PM、 日期格式
一、时间格式
时间的小时制分为12小时制和24小时制。由于一天是24小时,如果是12小时制必须把一天分为2段,为了区分当前时间是哪一段,因此在显示上必须加上一个标记。一般是凌晨开始到中午是一个时间段叫做上午(am),下一个时间段就是下午(pm).比如上午8点、下午2点。
在Android时间显示上每种语言默认时间格式不同,标记时间段的翻译也不同。比如英文默认是24小时制,时间段使用am、pm;中文默认是12小时制,时间段使用上午、下午。
这些都是在ICU里面定义的,具体定义在external\icu4c\data\locales\xx.txt(xx是语言代码,ISO_639-1),找到gregorian部分,如波斯fa.txt中定义
gregorian{
AmPmMarkers{
"قبلازظهر",----->am
"بعدازظهر",-----àpm
}
DateTimePatterns{
"H:mm:ss (zzzz)",----àH代表24小时制,h代表12小时制
"H:mm:ss (z)",
"H:mm:ss",
"H:mm",
……
AmPmMarkers这个就是定义时间段字串,H:mm是时间格式显示,对于其他语言比如印尼语显示为H.mm。如果要修改时间段、小时制或者显示格式,可以在此处修改。注意修改ICU资源需要单独编译ICU资源,在new整个工程,否则不会其效果。具体编译ICU可以参考FAQ04011
至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
如有侵权,请联系小编,小编对此深感抱歉,届时小编会删除文章,立即停止侵权行为,请您多多包涵。
既然都看到这里,领两个红包在走吧!
以下两个红包每天都可以领取
1.支付宝搜索 522398497,或扫码支付宝红包海报。
支付宝扫一扫,每天领取大红包
2.微信红包,微信扫一扫即可领取红包
微信扫一扫,每天领取微信红包
小礼物走一走,来简书关注我