先进的定位

除了基本格式外,本地化字符串中的占位符还可以支持一系列灵活的格式选项{0}等等,插入作为参数传递的任何对象的字符串表示形式。

本页提供了受支持的消息格式的概述。的MessageFormatJavadoc提供更多的细节。

数字

如果将数字作为参数传递,则通常不打印本地化格式。

要添加特定于区域设置的格式,请使用数量格式模式:

{0,号码}(1){0,号码,整数}(2){0,数量,货币}(3){0,数字,百分比}(4){0,数字,0。# # # E0}(5)
1 例如,显示一个本地化的数字1234 .56点(en_US),1.234, 56(de_DE),或1的234.5(de_CH)
2 整数四舍五入到最接近的整数。1235年(en_US)或1.235(de_DE)
3. 显示为货币
4 百分比,如。0.12可以格式化为12%
5 中的第三个参数可以定义任意模式DecimalFormatJavadoc.这个例子定义了科学符号,所以1234将显示为1.234 e3

选择

当术语的转换依赖于数字的值时,此模式非常有用。例子:

{0,choice,0#No projects were|1#A project was|2<{0,number,integer} projects were} found。

在本例中,输出取决于第一个参数(index)的值0):

  • 如果是零,没有发现任何项目是印刷的。

  • 如果是一个,找到了一个项目是印刷的。

  • 如果是两个或更多,N项目被发现是印刷的,N是参数值的局部表示。

这说明模式可以嵌套,也可以本地化数量嵌套在选择模式。

日期和时间

可以使用日期和时间模式来显示日期适合于用户地区的实例。

它们要么使用预定义的日期和时间样式(媒介,完整的的自定义格式SimpleDateFormat类。

{0,日期}(1){0,date,short} {0,date,medium} {0,date,long} {0,date,full} {0,date,yyyy-mm-dd}(2){0,时间}(3){0,time,short} {0,time,medium} {0,time,long} {0,time,full} {0,time,HH:mm:ss}(4)
1 默认(中)日期格式
2 自定义日期格式,在这种情况下,日期如2017-02-27
3. 默认(中等)时间格式
4 自定义时间格式,在本例中是像17:45:32这样的时间

参考文献