Java系列之Date、Number格式化工具类
项目中我经常会遇到对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同样都不是线程安全的哦。
作者:爱美有喜
来源链接:https://blog.csdn.net/shizhiailian/article/details/52317449
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。