>>梦想乡<<

[String]字符串对日期、数值两种类型数据的格式化

最近在工作中遇到一个业务需要将数字转换为固定长度的字符串,位数不足的可以在前面补零。考虑了一会儿,还是决定不自己写代码实现,在度娘上找找看,果然有新收获。

tring.format("%08d", 1234567); //1234567为int型   
    //打印   01234567

0代表前面要补的字符 
8代表字符串长度 
d表示参数为整数类型

 

网上除了这种转换符的高级功能,还有以下这样的:

标志说明示例结果
+ 为正数或者负数添加符号 (“%+d”,15) +15
0 数字前面补0(加密常用) (“%04d”, 99) 0099
空格 在整数之前添加指定数量的空格 (“% 4d”, 99) 99
, 以“,”对数字分组(常用显示金额) (“%,f”, 9999.99) 9,999.990000
( 使用括号包含负数 (“%(f”, -99.99) (99.990000)
# 如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0 (“%#x”, 99)(“%#o”, 99) 0x63 0143
< 格式化前一个转换符所描述的参数 (“%f和%<3.2f”, 99.45) 99.450000和99.45

 

还有日期相关的,有了这个转换日期变得简单了。

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

        打印结果:2021-01-19 23:34:03

 

日期格式化:

参数含义
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起经过的豪秒
posted @ 2021-01-19 23:40  文苏  阅读(358)  评论(0编辑  收藏  举报