Android P上如何添加时区

一、修改tzdata

a. 修改system\timezone\input_data\iana\tzdata2018e.tar.gz:把tzdata2018e.tar.gz解开,添加对应需要的时区

如Europe/Saint_Petersburg,city名不能有空格

Zone Europe/Saint_Petersburg     2:30:17 -    LMT    1880
                 2:30:17 -    MMT    1916 Jul  3 # Moscow Mean Time
                 2:31:19 Russia    %s    1919 Jul  1  0:00u
                 3:00    Russia    %s    1921 Oct
                 3:00    Russia    MSK/MSD    1922 Oct
                 2:00    -    EET    1930 Jun 21
                 3:00    Russia    MSK/MSD    1991 Mar 31  2:00s
                 2:00    Russia    EE%sT    1992 Jan 19  2:00s
                 3:00    Russia    MSK/MSD    2011 Mar 27  2:00s
                 4:00    -    MSK    2014 Oct 26  2:00s
                 3:00    -    MSK


修改后,重新打包成tzdata2018e.tar.gz,注意不要有文件夹。

b.进入system\timezone,执行python update-tzdata.py

执行脚本完成后,会在

system/timezone/output_data/iana/生成新的tzdata文件,

system\timezone\output_data\distro 生成新的distro.zip

external\icu\icu4c\source\data\misc\zoneinfo64.txt 生成新的zoneinfo64.txt

c. 手动修改system\timezone\output_data\android\tzlookup.xml,手动增加对应的city

  <country code="ru" default="Europe/Moscow" everutc="n">
   <id>Asia/Kamchatka</id>
   <id>Asia/Anadyr</id>
   <id>Asia/Magadan</id>
   <id>Asia/Sakhalin</id>
   <id>Asia/Srednekolymsk</id>
   <id>Asia/Vladivostok</id>
   <id>Asia/Ust-Nera</id>
   <id>Asia/Yakutsk</id>
   <id>Asia/Chita</id>
   <id>Asia/Khandyga</id>
   <id>Asia/Irkutsk</id>
   <id>Asia/Krasnoyarsk</id>
   <id>Asia/Novosibirsk</id>
   <id>Asia/Barnaul</id>
   <id>Asia/Novokuznetsk</id>
   <id>Asia/Tomsk</id>
   <id>Asia/Omsk</id>
   <id>Asia/Yekaterinburg</id>
   <id>Europe/Samara</id>
   <id>Europe/Astrakhan</id>
   <id>Europe/Ulyanovsk</id>
   <id>Europe/Saratov</id>
   <id>Europe/Moscow</id>
   <id>Europe/Volgograd</id>
   <id>Europe/Kirov</id>
   <id>Europe/Simferopol</id>
   <id>Europe/Kaliningrad</id>
   <id>Europe/Saint_Petersburg</id>
   <id>Europe/Lzhevsk</id>
   <id>Asia/Ufa</id>
   <id>Asia/Chelyabinsk</id>
   <id>Asia/Ulan-Ude</id>
   <id>Asia/Khabarovsk</id>
   <id>Asia/Severo-Kurilsk</id>   
  </country>
 

 二、 更新icudata文件

上个步骤已经自动update过了zoneinfo64.txt 文件,直接更新icudata即可。

1.进入到$AOSP/external/icu/icu4c/source/目录下的

2.在该目录下执行 ./runConfigureICU Linux命令生成MAKE文件

3.执行make INCLUDE_UNI_CORE_DATA=1

4:cp external/icu/icu4c/source/data/out/tmp/icudt60l.dat   $AOSP/external/icu/icu4c/source/stubdata

三、 修改Setting配置。

vendor\mediatek\proprietary\packages\apps\SettingsLib\res\xml\timezones.xml

    <timezone id="Europe/Saint_Petersburg"></timezone>
    <timezone id="Europe/Lzhevsk"></timezone>
    <timezone id="Asia/Ufa"></timezone>
    <timezone id="Asia/Chelyabinsk"></timezone>
    <timezone id="Asia/Ulan-Ude"></timezone>
    <timezone id="Asia/Khabarovsk"></timezone>
    <timezone id="Asia/Severo-Kurilsk"></timezone>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值