【记录】常用格式化工具类

记录个常用的格式化工具

参考文章地址

		// 注: 如果填写非规定的格式,会抛出IllegalFormatConversionException
        String.format("字符串:%1$s,字符:%2$c,数字:%3$d,浮点数:%4$f,布尔值:%4$b", "字符串", 'c', 2, 5.18, true);
        // 注: 正负数都用(+) 控制小数点位数(.2f,.3f等)  结果: 正数:+5, 负数:-1.10
        String.format("正数:%1$+d, 负数:%2$+.2f", 5, -1.1);
        /**
         * 注: %1$s 指定参数下标和数据类型, %s是按参数顺序进行赋值
         * 1.不满5位,在前面以0来补位。$后一位只能填写0,如果不填那么默认空字符串补位
         * 如: (%1$3, 1) '  1'
         * (%1$13, 1) ('  ..1'总计13位)
         * 2.数字分组: 每千位分组, f同理
         *
         * 一、相关数字格式  (DecimalFormat, BigDecimal(长精度浮点类))
         * new DecimalFormat().setGroupingSize(3): 可以设置指定位数进行分组
         * new DecimalFormat("#,##.##"): 每二位进行分组,并设置只保留小数点后2位(第三位四舍五入)
         * #: 代表一个数字,不包括0  如:##.### 2.2 结果:2.2
         * 0: 代表一个数字         如: 00.00 2.2 结果:2.20
         * setMaximumIntegerDigits(1) 设置最大整数位,多了忽略
         * setMaximumFractionDigits(1) 设置最大小数位,配合setRoundingMode(RoundingMode.FLOOR)使用,不四舍五入
         * 或: new DecimalFormat("00.00").setRoundingMode(RoundingMode.FLOOR)不四舍五入
         * setMinimumIntegerDigits(1) 设置最小整数位,不足以0补位
         * setMinimumFractionDigits(1) 设置最小小数位,不足以0补位
         * 注: 如果初始化设置了pattern,调用方法再次设置会覆盖pattern相同的设置。
         *
         */
        String.format("补位:%1$015d,数字千位分组:%2$,d", 11, 1000);
        DecimalFormat decimalFormat = new DecimalFormat(",##.##");
        decimalFormat.setMinimumFractionDigits(2);
        decimalFormat.setRoundingMode(RoundingMode.FLOOR);
        decimalFormat.format(1);
        /**
         * 时间格式化(不支持LocalDateTime等jdk1.8新增工具类)
         * String.format(Locale.US, "", 参数): 参数1可以设置转换的地区
         * %tc: 全部日期格式  (星期六 三月 23 11:52:56 CST 2019)
         * %tF: 2019-03-23
         * %tD: dd/MM/yy
         * %tr: “HH:MM:SS PM”格式(12时制) 02:25:51 下午
         * %tT: "HH:MM:SS"(24时制)
         * %tR: "HH:MM"(24时制)
         * %tb: 月份 (三月) 简称(Locale.US) Sep
         * %tB: 月份 (三月) 全称(Locale.US) September
         * %ta: 星期(星期六)
         * %tj: 当前据年天数(082) 三位
         * %tm: 当前月份(03)
         * %td: 当前日历天数(23) 不够二位补0
         * %te: 当前日历天数(23) 不补0
         * %tp: 上午或下午
         * %ts: 1970-1-1 00:00:00 到现在所经过的秒数
         * %tQ: 1970-1-1 00:00:00 到现在所经过的毫秒数
         */
        Date now = new Date();
        String.format("全时间:%1$tc,年月日:%tF,月份:%1$tb," +
                "星期:%1$ta, 当前年天数:%1$tj, 时段:%1$tp", now);

其他工具类:

数字操作
DecimalFormat、BigDecimal、BigInteger等
原子类
AtomicInteger等等
时间
LocalDateTime、LocalDate等
操作日历
Calendar这个类很好用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值