格式化输出
格式化输出
c语言中有个printf函数,在java中,也有对应的方法,他们的用户基本一致。
System.out.printf("%8.2f", x);
下面是printf可以使用的转换符
可以使用s转换符格式化任意的对象。
可以使用多个标志, 例如 , “%,( . 2 f ” 使用分组的分隔符并将负数括在括号内 。
可以使用静态的String.format方法创建一个格式化的字符串,而不是打印输出
String msg = String.format("hello,%s.Next year,you'll be %d", name, age);
日期格式化
printf还可以对时间日期进行格式化,这个格式需要包括两个字母,以t开始。
转换符 | 说明 |
---|---|
%te |
一年中的某一天 |
%tb |
指定语言环境的月份简称 |
%tB |
指定语言环境的月份全称 |
%tA |
指定语言环境的星期几全称 |
%ta |
指定语言环境的星期几简称 |
%tc |
包括全部日期和时间信息 |
%tY |
4位年份 |
%tj |
一年中的第几天 |
%tm |
月份 |
%td |
一个月中的第几天 |
%ty |
2位年份 |
%tH |
2位数字的24时制的小时 |
%tI |
2位数字的12时制的小时 |
%tk |
2位数字的24时制的小时 |
%tl |
2位数字的12时制的小时 |
%tM |
2位数字的分钟 |
%tS |
2位数字的秒数 |
%tL |
2位数字的毫秒数 |
%tN |
9位数字的微秒数 |
%tp |
指定语言环境上午或下午标记 |
%tz |
相对于 GMT RFC 82 格式的数字时区偏移量 |
%tZ |
时区缩写形式的字符串 |
%ts |
1970-01-01 00:00:00 至现在经过的秒数 |
%tQ |
1970-01-01 00:00:00 至现在经过的毫秒数 |
%tF |
“年-月-日”格式(4位年份) |
%tD |
“月/日/年”格式(2位年份) |
%tr |
“时:分:秒 上午/下午”格式(12时制) |
%tT |
“时:分:秒”格式(24时制) |
%tR |
“时:分”格式(24时制) |
import java.util.*;
public class Sty {
public static void main (String [] args) {
System.out.printf("%1$tF %1$tT", new Date());
// 2020-12-27 15:58:50
}
}
如上述代码所示,printf方法可以多次使用同一个变量。用一个格式字符串指示要格式化的参数索引,索引必须紧跟在%后面,并以$终止。(注意:参数的所有不是从0开始,而是从1开始)