修改时区名字

原创 2015年11月18日 10:07:53
【Description】:

目前对于有些地区,很多国家会使用一个时区,显示的名称也是一样,比如对于欧洲,很多城市使用“欧洲中部时间”“中欧夏令时”,非洲国家也是类似的。对于有些客户,可能有定制显示需求,对于某些时区,不显示“xx中部时间”,而是显示“xx时间”,比如下面会以荷兰阿姆斯特丹为例,目前在手机Setting中选择“Amsterdam,Berlin”后在Date&Time界面会显示“Central European Summer Time”,下面是修改荷兰语下这个显示为自定义名称的过程。



【Solution】:

时区Europe/Amsterdam目前显示出来的时间是“欧洲中部时间”或“欧洲中部时间”,如果要修改荷兰语下显示为“阿姆斯特丹时间”或其他自定义的显示,请follow下面的修改:
1. 找到时区ID

时区id并不是城市名称,手机显示到时区列表上的时区名称与时区id有映射关系,可以通过查看Settings中的timezones.xml来确定,package/apps/Settings/res/xml-zh/timezones.xml是中文。这样可以找到Amsterdam,Berlin的时区id是Europe/Amsterdam。
2. 修改metaZones.txt文件(external/icu4c/data/misc/)
1)    修改mapTimezones

修改的目的是把时区添加到自己定义的显示规则中,这样通过时区ID  Europe/Amsterdam就可以得到该显示规则Europe_Amsterdam。这个步骤分2步:
a)      定义自己的显示规则名称

         比如我定义了新的规则Europe_Amsterdam, 需要在mapTimezones中添加进去,mapTimezones中顺序是按字母排序的,所以Europe_Amsterdam这个规则要添加到Europe_Central的前面,如下:

Europe_Amsterdam{

}
b)     将要修改的时区从原规则中删除,添加到自定义的规则中

找到要修改的时区,比如Europe/Amsterdam在Europe_Central中,

剪切NL{“Europe/Amsterdam”},粘贴到自定义的时区显示规则中,如下所示:

Europe_Amsterdam{

NL{“Europe/Amsterdam”}

}



如果此文件中没有包含要修改的时区,那么就需要添加此时区,添加的内容如上面所示,时区前面的两个字母是国家代码。
2)    修改metaZoneinfo

添加meta信息,这样就可以通过显示规则名称Europe_Amsterdam得到meta信息Europe:Amsterdam。

“Europe:Amsterdam”{

{“Europe_Amsterdam”}

}
3. 修改zone/*.txt文件(external/icu4c/data/)
这里所有的txt文件都代表每种语言下对应的时区显示的名字!
不同的txt文件代表的是不同语言,语言和区域代码可通过查询ISO-3166-1和ISO-639标准确定。

定义在界面显示的字串,这样根据之前得到的meta信息可以得到要显示的字串。

同样的,名称是按照字母排序的,所以在Europe_Central前面添加,如下:

“meta: Europe_Amsterdam”{

ld{“夏令时间显示名称”}

ls{“标准时间显示名称”}

}
 但是如果要提交到服务器,让修改的生效的话,必须把编译icu生成的.dat文件同时提交上去,替换相应目录下的同名文件才行昂!
版权声明:本文为博主原创文章,未经博主允许不得转载。

Linux修改系统时区

  • 2009年12月31日 22:17
  • 408B
  • 下载

linux系统修改系统时间与时区

有装过Linux系统的人,可能都会有这样的经历,就是该机器安装windows系统时,时间正确,但是安装了linux系统后,尽管时区选择正确,也会发现系统时间不对。这是由于安装系统时采用了UTC,那么什...

C#修改Windows时区

  • 2017年10月05日 15:02
  • 5KB
  • 下载

设置和修改linux时区

  • 2013年07月01日 11:22
  • 1KB
  • 下载

Linux在C语言下的时区设置与修改(二)

前面说到是去同步时区的接口, 从同步的角度来讲,如何获取被设置后的时区,还有一个接口即gettimeofday, 这个接口不仅可以获取时区,posix标准似乎还很好心的在第二个参数中放置了可以用来...

Linux修改时区和时间

修改时区: 1> 找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai 用这个文件替换当前的/etc/localtime文件。 或者找你认为是标准时间的服务器...

【转】[转]设置修改CentOS系统时区/时间

centos时间调整的操作   在我们使用CentOS系统的时候,也许时区经常会出现问题,有时候改完之后还是会出错,下面我们就来学习一种方法来改变这个状况。 如果没有安装,而你使用的是 CentO...
  • shcqupc
  • shcqupc
  • 2016年02月01日 09:45
  • 142

Android系统移植与调试之------->如何修改Android的默认语言、默认时区

转自 http://blog.csdn.net/ouyang_peng/article/details/9629487 修改device/other/TBDG1073/ sys...

Android系统移植与调试之------->如何修改Android的默认语言、默认时区

1. 设置默认时区 PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.timezone=Asia/Shanghai\ 注:搜索“persist.s...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:修改时区名字
举报原因:
原因补充:

(最多只允许输入30个字)