格式化输出

格式化输出

c语言中有个printf函数,在java中,也有对应的方法,他们的用户基本一致。

System.out.printf("%8.2f", x);

下面是printf可以使用的转换符

QQ截图20201227154040 - 格式化输出

可以使用s转换符格式化任意的对象。

可以使用多个标志, 例如 , “%,( . 2 f ” 使用分组的分隔符并将负数括在括号内 。

QQ截图20201227154049 - 格式化输出

可以使用静态的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开始)