数字、日期、时间客制化问题

[DESCRIPTION]

世界各地的风俗和语言习惯不同,其数字、货币、时间、日期、国家名称显示形式也是不尽相同。

Android引入了ICU4C(External)解决了这些国际化的问题,下面列出了常见的客制化的问题。

[SOLUTION]
1、数字、货币

各个国家数字以及数值表示方式不同,如英文2.46,阿拉伯语为٢‎,٤‎٦‎,而俄文却是2,46。如果系统语言为俄文,想要把数字显示成英语格式,按照如下:

NumberFormat inf = NumberFormat. getInstance(new Locale(“en”));

String str = nf.format(2.46);

有关货币、int、percent等类型格式化具体可参考NumberFormat.java

2、时间、日期

关于时间格式化和数字差不多,具体例子如下:

SimpleDateFormat sdf = new SimpleDateFormat(“hh:mm”,new Locale(“en”));

String result = sdf.format(mCalendar.getTime());

SimpleDateFormat sdf = new SimpleDateFormat(“EEEE, MMMM d”,new Locale(“en”));

String result = sdf.format(mCalendar.getTime());

3、其他ICU资源

一些ICU字串,如日期、语言、时区、国家等的翻译在External/icu4c/data/下各个子目录下,常见如:

lang:各种语言对其他语言的翻译,常见地方为Setting的语言列表。

locale:月份、星期、日期、AM/PM等日期相关的翻译。

zone:时区名称定义。

region:地区、国家名称。

如果修改了ICU资源,必须重新编译ICU资源,在Remake工程,否则不会起效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值