JAVA字符串格式化-String.format()的使用

日期和时间格式化

public class StringFormatTest {
    public static void main(String[] args) {
        Date date = new Date();
        //简称和全称在英文下会有区分
        System.out.println("月份简称:"+String.format("%tb", date));
        System.out.println("月份全称:"+String.format("%tB", date));
        System.out.println("星期几简称:" + String.format("%ta", date));
        System.out.println("星期几全称:" + String.format("%tA", date));
        System.out.println(String.format("二位年份:" + String.format("%ty", date)));
        System.out.println(String.format("四位年份:" + String.format("%tY", date)));
        System.out.println(String.format("月份:" + String.format("%tm", date)));
        System.out.println(String.format("一个月中的某一天:" + String.format("%td", date)));
        System.out.println(String.format("一年中的第几天:" + String.format("%tj", date)));
        System.out.println(String.format("包含全部日期和时间信息:" + String.format("%tc", date)));
        System.out.println(String.format("年-月-日格式,4位年份:" + String.format("%tF", date)));
        System.out.println(String.format("年/月/日格式,2位年份:" + String.format("%tD", date)));
   
       fotmatTime();
    }
    public static void fotmatTime(){
        Date date = new Date();
        System.out.println("2位数字的24小时制的小时(0-23):" + String.format("%tH", date));
        System.out.println("2位数字的12小时制的小时(01-12):" + String.format("%tI", date));
        System.out.println("2位数字的24小时制的小时(0-23):" + String.format("%tk", date));
        System.out.println("2位数字的12小时制的小时(01-12):" + String.format("%tl", date));
        System.out.println("2位数字的分钟:" + String.format("%tM", date));
        System.out.println("2位数字的秒数:" + String.format("%tS", date));
        System.out.println("3位数字的毫秒数:" + String.format("%tL", date));
        System.out.println("9位数字的微妙数:" + String.format("%tN", date));
        System.out.println("下午或上午标记:" + String.format("%tp", date));
        System.out.println("时区的缩写形式:" + String.format("%tZ", date));
        System.out.println("从1970-01-01 00:00:00到现在的秒数:" + String.format("%ts", date));
        System.out.println("从1970-01-01 00:00:00到现在的毫秒数" + String.format("%tQ", date));
        System.out.println("时:分:秒 PM(AM)格式,12小时制:" + String.format("%tr", date));
        System.out.println("时:分 格式(24小时制):" + String.format("%tR", date));
        System.out.println("时:分:秒 格式,24小时制:" + String.format("%tT", date));
    }

}

输出结果:

月份简称:十一月
月份全称:十一月
星期几简称:星期五
星期几全称:星期五
二位年份:18
四位年份:2018
月份:11
一个月中的某一天:02
一年中的第几天:306
包含全部日期和时间信息:星期五 十一月 02 14:36:38 CST 2018--日格式,4位年份:2018-11-02//日格式,2位年份:11/02/18
2位数字的24小时制的小时(0-23):14
2位数字的12小时制的小时(01-12):02
2位数字的24小时制的小时(0-23):14
2位数字的12小时制的小时(01-12):2
2位数字的分钟:36
2位数字的秒数:38
3位数字的毫秒数:593
9位数字的微妙数:593000000
下午或上午标记:下午
时区的缩写形式:CST
从1970-01-01 00:00:00到现在的秒数:15411405981970-01-01 00:00:00到现在的毫秒数1541140598593
时:分:秒 PM(AM)格式,12小时制:02:36:38 下午
时:分 格式(24小时制):14:36
时:分:秒 格式,24小时制:14:36:38

常规类型的格式化

public class A {
    public static void main(String[] args) {
        String str=null;
        str=String.format("Hi,%s", "王力");
        System.out.println(str);
        str=String.format("Hi,%s:%s.%s", "王南","王力","王张");
        System.out.println(str);
        System.out.printf("字母a的大写是:%c %n", 'A');
        System.out.printf("3>7的结果是:%b %n", 3>7);
        System.out.printf("100的一半是:%d %n", 100/2);
        System.out.printf("100的16进制数是:%x %n", 100);
        System.out.printf("100的8进制数是:%o %n", 100);
        System.out.printf("50元的书打8.5折扣是:%f 元%n", 50*0.85);
        System.out.printf("上面价格的16进制数是:%a %n", 50*0.85);
        System.out.printf("上面价格的指数表示:%e %n", 50*0.85);
        System.out.printf("上面价格的指数和浮点数结果的长度较短的是:%g %n", 50*0.85);
        System.out.printf("上面的折扣是%d%% %n", 85);
        System.out.printf("字母A的散列码是:%h %n", 'A');

    }
}

输出结果

Hi,王力
Hi,王南:王力.王张
字母a的大写是:A 
3>7的结果是:false 
100的一半是:50 
10016进制数是:64 
1008进制数是:144 
50元的书打8.5折扣是:42.500000 元
上面价格的16进制数是:0x1.54p5 
上面价格的指数表示:4.250000e+01 
上面价格的指数和浮点数结果的长度较短的是:42.5000 
上面的折扣是85% 
字母A的散列码是:41 

格式转换标记

代码

public class FormatTest02 {
    public static void main(String[] args) {
        System.out.println("为数字添加符号:"+String.format("%+d", 15));
        System.out.println("数字前面补零:"+String.format("%04d", 15));
        System.out.println("添加指定数量的空格:"+String.format("%d     %d", 15,16));
        System.out.println("以,对数字分组:"+String.format("%,f", 9999.990000));
    
    }

输出结果

为数字添加符号:+15
数字前面补零:0015
添加指定数量的空格:15     16
以,对数字分组:9,999.990000
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值