语法规则:
%[argument_index$][flags][width][.precision]conversion
正规使用方法:
便捷方法:
转换器:
b 或 B :将null转换为"false",将Boolean值转换为字符串,将其他值转换为"true"
s = String.format("%1$b", null); // s的值为"false"
s = String.format("%1$b", 0); // s的值为"true"
h 或 H :将null转换为"false",对其他对象调用其toHexString(arg.hashCode())函数
s 或 S :将null转换为"false",对于实现了Formattable接口的对象,调用其arg.formatTo()函数,对于其他对象调用其arg.toString()函数
c 或 C :将一个整数转换为其对应的Unicode字符
s = String.format("%1$c%2$c%3$c", 29579, 20122, 26976); // s的值为“王亚楠”
d :格式化一个十进制整数
o :格式化一个八进制整数
x 或 X :格式化一个十六进制整数
e 或 E :将一个浮点数格式化为科学计数法形式
s = String.format("%1$.4e", 0.000623); // s的值为"6.2300e-04"
f :格式化浮点数
n :回车换行符
s = String.format("%1$c%n%2$c%n%3$c", 29579, 20122, 26976); // s的值为竖直排列的“王亚楠”
tH :小时,24小时制,两位数表示,00-23
tI :小时,12小时制,两位数表示,01-12
tk :小时,24小时制,不补零,1-23
tl :小时,12小时制,不补零,1-12
tM :分钟,两位数表示,00-59
tS :秒,两位数表示,00-60, 60是个有特殊用途的秒
tL :毫秒,三位数表示,000-999
tN :纳秒,九位数表示,000000000-999999999
tp :用本地化字符串表示“上午”或“下午”
tz :本地时区和GMT时区的偏移量,用北京时间测试的结果为+0800
tZ :本地时区缩写,中国的时区为CST(China Standard Time),但是该缩写同时表示4个含义,不能作为判断时区的标准
ts :以秒为单位的时间戳,距离1970-01-01 00:00:00 的秒数
tQ :以毫秒为单位的时间戳,距离1970-01-01 00:00:00 的毫秒数
tB :月份,用本地化字符串显示月份全称
tb :月份,用本地化字符串显示月份简称,对中文来讲简称和全称是一样的
tA :星期几,用本地化字符串显示星期几的全称
ta :星期几,用本地化字符串显示星期几的简称,对中文来讲简称和全称是一样的
tC :年份的前两位,比如现在是2010年,他就显示20
tY :年份,四位数表示
ty :年份,两位数表示
tj :一年中的第几天,三位数字表示,000~366
tm :月份,两位数表示,00~13
td :每月中的几号,两位数字表示,01~31
te :每月中的几号,不补零,1~31
tR :几点几分,均用两位数表示,例如 02:06
tT :几点几分几秒,均用两位数表示,例如 21:57:04
tr :几点几分几秒,12小时制,均用两位数表示,例如 09:57:38 下午
tD :当前年月日,格式为"月/日/年",均用两位数表示,例如 09/25/10
tF :当前年月日,格式为"年-月-日",年用4位数表示,月、日用两位数表示,例如 2010-09-25
tc :完整的当前时间,本地化字符串表示,例如 "星期六 九月 25 22:01:49 CST 2010"
标志位:
- :内容左对齐
# :格式化8进制、16进制整数的时候,带上前缀,例如 0x3,若不用#结果为 3
+ :格式化数字的时候,显示正负号
0 :格式化数字的时候,用0填充
, :格式化十进制数字的时候,每3为加一个逗号分隔,例如 12,345