String.format()用法

1 占位符
1.1 单个占位符

String s = String.format("Hello %s,Welcome to my blog!", "jerry");
System.out.println(s);//Hello jerry,Welcome to my blog!

1.2 多个占位符
1.2.1 按顺序

String s = String.format("Hello %s%s%s", "jerry-", "li", ",welcome!");

1.2.2 按索引

String s = String.format("Hello %2$s%3$s%1$s", "li-", "heng-", "jie");

2 对整数格式化

int n2 = 9999999;
System.out.printf("%+(,d %n", n2);

参数     含义
-     在最小宽度内左对齐,不可以与0标识一起使用。
0     若内容长度不足最小宽度
+     结果总包含一个+或-号。
空格     正数前加空格
,     只用与十进制
(     若结果为负数
3 对浮点数格式化

double n = 3.1415926;
String s = String.format("%f %n", num);

参数     含义
-     在最小宽度内左对齐
0     若内容长度不足最小宽度
+     结果总包含一个+或-号。
空格     正数前加空格
,     只用与十进制
(     若结果为负数
4 对日期、时间格式化

对日期格式化的时候不能像对数字那样多种格式对应一个数字,
分为日期格式化及时间格式化两部分,如果希望格式化之后的格式是:
2017-01-13 12:05:30,需要先格式化日期,然后再格式化时间。
如下:

Date date = new Date();
String dateFormat = String.format("%tF %tT ", date, date);
System.out.println(dateFormat);

日期格式化:
参数     含义
c     星期六 十月 27 14:21:20 CST 2007
F     2007-10-27
D     10/27/07
r     02:25:51 下午
T     14:28:16
R     14:28
b     月份简称
B     月份全称
a     星期简称
A     星期全称
C     年前两位(不足两位补零)
y     年后两位(不足两位补零)
j     当年的第几天
m     月份(不足两位补零)
d     日期(不足两位补零)
e     日期(不足两位不补零

时间格式化:
参数     含义
H     24小时制的小时(不足两位补零)
k     24小时制的小时(不足两位不补零)
I     12小时制的小时(不足两位补零)
i     12小时制的小时(不足两位不补零)
M     分钟(不足两位补零)
S     秒(不足两位补零)
L     毫秒(不足三位补零)
N     毫秒(不足9位补零)
p     小写字母的上午或下午标记,如中文为“下午”,英文为pm
z     相对于GMT的时区偏移量,如+0800
Z     时区缩写,如CST
s     自1970-1-1 00:00:00起经过的秒数
Q     自1970-1-1 00:00:00起经过的豪秒

备注:(System.out.printf()==System.out.print(String.format())
 

T

原文地址:https://www.cnblogs.com/baobeiqi-e/p/9884721.html