Java系列之Date、Number格式化工具类

来源:互联网 发布:去哪里下无损音乐 知乎 编辑:程序博客网 时间:2024/06/15 05:05

项目中我经常会遇到对Date、Number的格式化问题,可以把一些常用的format方法写成工具类,以后在项目中直接引用就可以了O(∩_∩)O~
不多说,总结如下,


1. Date格式化工具类(DateFormatUtils)

Java中对date的格式化,最常用的就是JDK自己的格式化类DateFormat和SimpleDateFormat。从API中我们可以看到SimpleDateFormat是DateFormat的继承类,也非常常用。
这里写图片描述

DateFormatUtils:

package demo.util.format;import java.text.SimpleDateFormat;import java.util.Date;/** * @author 爱美有喜 */public class DateFormatUtils {    public static final String dateFormaterPattern1 = "yyyy-MM-dd HH:mm:ss";    public static final String dateFormaterPattern2 = "yyyy-MM-dd";    public static final String dateFormaterPattern3 = "yyyy/MM/dd";    public static final String dateFormaterPattern4 = "yyyyMMdd";    public static final String dateFormaterPattern5 = "HH:mm:ss";    /**     * format date method     */    public static String formatDate(Date date, String pattern){        SimpleDateFormat sdf = new SimpleDateFormat(pattern);        return sdf.format(date);    }    /**     * test     */    public static void main(String[] args) {        Date now = new Date();        System.out.println("dateFormaterPattern1: " + formatDate(now, dateFormaterPattern1));        System.out.println("dateFormaterPattern2: " + formatDate(now, dateFormaterPattern2));        System.out.println("dateFormaterPattern3: " + formatDate(now, dateFormaterPattern3));        System.out.println("dateFormaterPattern4: " + formatDate(now, dateFormaterPattern4));        System.out.println("dateFormaterPattern5: " + formatDate(now, dateFormaterPattern5));    }}

输出如下,
dateFormaterPattern1: 2016-08-25 19:36:57
dateFormaterPattern2: 2016-08-25
dateFormaterPattern3: 2016/08/25
dateFormaterPattern4: 20160825
dateFormaterPattern5: 19:36:57

注意:DateFormat和SimpleDateFormat都不是线程安全的哦,多线程高并发的场景大家有兴趣可以自己探讨下。不想新建太多实例的话,同步方法可参考下ThreadLocal。
这里写图片描述


2. Number格式化工具类(NumberFormatUtils)

同样的,Java中对number的格式化,常用的也是是JDK自己的格式化类NumberFormat和DecimalFormat。从API中我们可以看到DecimalFormat是NumberFormat的继承类,以此为例。
这里写图片描述

NumberFormatUtils:

package demo.util.format;import java.text.DecimalFormat;/** * @author 爱美有喜 * */public class NumberFormatUtils {    public static final String numberFormaterPattern1 = "#,###.00";    public static final String numberFormaterPattern2 = "#,###";    public static final String numberFormaterPattern3 = "#,###.00%";    /**     * format decimal method     */    public static String formatDecimal(Double number, String pattern){        DecimalFormat df = new DecimalFormat(pattern);        return df.format(number);    }    public static String formatInteger(Integer number, String pattern){        DecimalFormat df = new DecimalFormat(pattern);        return df.format(number);    }    /**     * test     */    public static void main(String[] args) {        Double number1 = 12345.691356;        Integer number2 = 99999872;        Double number3 = 0.691356;        System.out.println("formatDecimal: " + formatDecimal(number1, numberFormaterPattern1));        System.out.println("formatInteger: " + formatInteger(number2, numberFormaterPattern2));        System.out.println("formatDecimal: " + formatDecimal(number3, numberFormaterPattern3));    }}

输出如下,
formatDecimal: 12,345.69
formatInteger: 99,999,872
formatDecimal: 69.14%

注意:NumberFormat和DecimalFormat同样都不是线程安全的哦。
这里写图片描述


1 0
原创粉丝点击