• java常用的格式化


    日常工作中,总会遇到一些格式化显示的需求,下面做一些简单的整理

    JDK中java.text下提供了格式化常用的工具类,具体结构见下图

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    时间日期格式化

    DateFormat

    采用DateFormat.get%Instance()方法进行实例化,提供format()进行格式化,可以讲Date和String两种类型的日期时间进行互转

    例如

        DateFormat.getInstance().format(Calender.getInstance().getTime());

    这种方法可以获得当前时间的格式化,但是并未制定格式。DateFormat方法并不提供自定义格式。因此SimpleDateFormat是一种较好的选择

    SimpleDateFormat

    采用new的方式实例化,可以自定义格式化格式。

    例如

    		String model = "yyyy/MM/dd hh:mm:ss";
    		sdf = new SimpleDateFormat(model);
    		Date date = Calendar.getInstance().getTime();
    		System.out.println(sdf.format(date));

    常用的格式化字符

    G:AD / BD

    y:year

    M:month

    d:day

    h/H:hour  12小时制/24小时制

    m:minites

    s:second

    S:s/1000

    数字格式化

    NumberFormat

         NuberFormat采用getXXXInstance获取格式化实例,可以 自动添加千分符,百分号,金额等格式化

         getInstance() 返回当前默认语言环境的通用数值格式

         getIntegerInstance() 返回当前默认语言环境的整数格式

         getMaximumFractionDigits()返回数的小数部分所允许的最大位数

         getCurrencyInstance() 返回当前默认语言环境的货币格式

         NumberFormat不能自己指定格式化格式,可以使用它的子类进行实现。

    DecimalFormat

         使用方法

                new DecimalFormat(pattern).format(123456.789);

               重点pattern的用法,如何定义一个pattern.

                     #代表数字

                     .代表小数点

                     ,分隔符

                     %百分号

                     u2030千分符(键盘上无法直接打出)

                     E科学计数法

          简单列举一些常用的pattern

          千分符分割数字(Ps:千分符小数位不需要分割即123,456.0123456)#,###.##### 小数点后需要保留多少位看需要,对于0.12和12.0会显示成.12和12.。

          改进的千分符分割数字:#,##0.0###

          科学计数法:0.0##E0

          格式化百分比:#,###.00%

          格式化千分比:#,###.00u2030      

    ChoiceFormat

          使用方法:

                 double[] limits = {0,1,2,3};//限制条件

                 String[] formats = {"0~1","1~2","2~3","3~"}//格式化输出的结果;限制条件和格式化结果数量必须一致

                 ChoiceFormat cf = new ChoiceFormat(limits,formats);

                 cf.format(1.2);

         注意:limits顺序无所谓,ChoiceFormat使用之前会进行排序

                    实现的功能类似if else,以上述limits为例,比较条件为0<=x<1,1<=x<2,2<=x<3,3<=x 然后在对应到formats对应位置的格式化输出位置的值

                    可以理解成这个样子

    		double x = 1.2;
    		String format ;
    		if(0<=x && x<1)
    			format = "0~1";
    		else if(1<=x && x<2)
    			format = "1~2";
    		else if(2<=x && x<3)
    			format = "2~3";
    		else if(3<=x)
    			format = "3~";


     

    消息格式化

    MessageFormat

        作用:类似Log4J那种输出,自定义一些标准化输出信息,然后按照定义的规则输出内容.

        用法:MessageFormat.format("logger {0,date} {0,time}:Hello {1},This {2} ", new Date(),"Tom","HanMeiMei");

  • 相关阅读:
    同步、异步、阻塞和非阻塞区别
    SpringMVC文件上传实现
    Java注解入门
    SpringMVC实现一个controller写多个方法
    提高tomcat的并发能力
    人一生追求的是什么
    python class对象转换成json/字典
    python可分组字典
    python enumerate函数用法
    Python特殊语法--filter、map、reduce、lambda
  • 原文地址:https://www.cnblogs.com/ssp2110/p/3797679.html
Copyright © 2020-2023  润新知