一、日期格式化

常用的日期格式化转换符:

%te:一月中的某一天(1-31)  2

%tb:指定语言环境的月份简称  Feb或二月

%tB:指定语言环境的月份全称  February或二月

%tA:指定语言环境的星期几全称 Monday、星期一

%ta:指定语言环境的星期几简称 Mon、星期一

%tc: 包括全部日期和时间信息

%tY:4位年份  2023

%tj: 一年中的第几天(001-366)  085

%tm: 月份 03

%td: 一个月中的第几天(01-31) 02

%ty: 2位年份 23

示例代码如下:

import java.util.Date;
 
/**
 * @author qx
 * @date 2023/08/10
 * @desc String格式化学习
 */
public class StringTest {
    public static void main(String[] args) {
        Date date = new Date();
        // 输出 2023
        System.out.println(String.format("%tY", date));
        // 输出 六月
        System.out.println(String.format("%tB", date));
        // 输出 星期六
        System.out.println(String.format("%tA", date));
        // 输出 06
        System.out.println(String.format("%tm", date));
 
    }
}

二、时间格式化

常用的时间格式转换符:

%tH:2位数字的24小时制的小时(00-23) 14

%tI:2位数字的12小时制的小时(01-12) 10

%tK : 2位数字的24小时制的小时(0-23) 5

%ti: 2位数字的12小时制的小时(1-12) 10

%tM:2位数字的分钟数(00-59) 05

%tS: 2位数字的秒数(00-60) 12

%tZ: 时区缩写形式的字符串 CST

示例代码如下:

import java.util.Date;
 
/**
 * @author qx
 * @date 2023/08/10
 * @desc String时间格式化学习
 */
public class StringTest {
    public static void main(String[] args) {
        Date date = new Date();
        String hour = String.format("%tH", date);
        String minute = String.format("%tM", date);
        String second = String.format("%tS", date);
        // 输出 现在是:15时35分33秒
        System.out.println("现在是:" + hour + "时" + minute + "分" + second + "秒");
    }
}

三、常见日期时间格式化

常用的日期时间格式转换符:

%tF: 年-月-日 格式(4位年份) 2023-06-10

%tD: 月/日/年格式(2位年份) 10/06/23

%tc: 全部日期和时间信息

%tT: 时:分:秒(24时制)  15:38:20

%tR: 时:分格式(24时制) 15:25

示例代码如下:

import java.util.Date;
 
/**
 * @author qx
 * @date 2023/08/10
 * @desc String.format学习
 */
public class StringTest {
    public static void main(String[] args) {
        Date date = new Date();
        // 输出 2023-08-11
        System.out.println(String.format("%tF", date));
        // 输出 17:50:11
        System.out.println(String.format("%tT", date));
        // 输出 星期五 八月 11 17:50:11 CST 2023
        System.out.println(String.format("%tc", date));
    }
}

四、常规类型格式化

%s、%S: 结果被格式化成字符串类型

%d: 结果被格式化为十进制整数

%n:结果为特定于平台的行分隔符

%b、%B: 结果被格式化位布尔类型

示例代码如下:

/**
 * @author qx
 * @date 2023/06/10
 * @desc String.format学习
 */
public class StringTest {
    public static void main(String[] args) {
        // 输出 10
        System.out.println(String.format("%d", 20 / 2));
        // 输出 true
        System.out.println(String.format("%b", 3 > 2));
        // 输出 hello world
        System.out.println(String.format("hello %s", "world"));
    }
}

五、浮点数格式化

%b:布尔类型,格式化为字符串true或false

%n:平台独立的换行符

%f:浮点数类型(十进制)。显示9位有效数字,会进行四舍五入。

%a:浮点类型(十六进制)

%g:浮点类型(比%f,%a长度短些,显示6位有效数字,会进行四舍五入。

示例代码如下:

public class Demo {
    public static void main(String[] args) {
        double num = 123.4567899;
        // 输出 123.456790
        System.out.println(String.format("%f %n",num));
        // 输出 123.457
        System.out.println(String.format("%g %n",num));
        // 输出 0x1.edd3c0bb46929p6
        System.out.println(String.format("%a %n",num));
    }
}