Java格式化输出

时间:2022-09-22 20:20:33

Java的格式化输出等同于String.Format,与C有很大的相似,比如
      System.out.printf("%8.2f", x);
在printf中,可以使用多个参数,例如:
      System.out.printf("Hello, %s. Next year, you'll be %d", name, age);

    用于printf的转换符如下表:

转换符 类型  举例
d 十进制整数  
x 十六进制整数 9f
o 八进制整数
f 定点浮点数 15.9
e 指数浮点数 1.59e+01
g 通常浮点数  
a 十六进制浮点数 0x1.fccdp3
s 字符串 Hello
c 字符 H
b 布尔型 TRue
h 散列码 42628b2
tx 日期时间 见时间介绍表
% 百分号 %
n 分隔符       

在printf函数中,可以使用多个标志,如:
   System.out.printf("%,.2f", 10000.0 / 3.0);
用于printf的标志如下表

标志 目的 举例
+ 打印数字前的符号 +3333.33
space 在正数之前加空格 | 3333.33|
在数字前补0 003333.33
- 左对齐 |3333.33 |
( 负数括在括号内 (3333.33)
, 添加分组分隔符 3,333.33
# (for f ) 包含小数点 3,333.
# (for x or o) 添加前缀 0x 或 0 0xcafe
^ 转化为大写 0XCAFE
$ 指定格式化参数索引,如%1$d,%1$d表示以十进制
和十六进制打印第一个参数
159 9F
< 格式化前面参数,如%d%<x表示以十进制和十六进
制打印同一个参数
159 9F

  时间日期的转换符如下:

转换符 类型 举例
C 完整日期和时间 Mon Feb 09 18:05:19 PST 2004
F ISO 8601 日期 2004-02-09
D 美国时间格式 (mm/dd/year) 02/09/2004
T 24小时时间 18:05:19
r 12小时时间 06:05:19 pm
R 24小时无秒时间 18:05
Y 四位年
y 年的后两位
C 年的前两位
B 月的完整拼写 February
b or h 月的缩写 Feb
m 两位月(前补0)
d 两位日(前补0)
e 日期(前不补0)
A 完整星期几 Monday
a 星期几的缩写 Mon
j 这一年的第多少天,三位补0
H 24小时制小时,两位补0
k 24小时制小时,两位不补0
I 12小时制小时,两位补0
l 12小时制小时,两位不补0
M 分钟,两位补0
S 秒,两位补0
L 毫秒,三位补0
N 毫微秒,九位补0
P 上下午大写 PM
p 上下午小写 pm
z RFC 822 numeric offset from GMT -0800
Z 时区 PST
s 1970-01-01 00:00:00起秒数
E 1970-01-01 00:00:00起毫秒数