当前位置:首页 > Java技术 > Java系列之Date、Number格式化工具类

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

2022年11月05日 21:44:15Java技术35

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


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

Java中对date的格式化,最常用的就是JDK自己的格式化类DateFormat和SimpleDateFormat。从API中我们可以看到SimpleDateFormat是DateFormat的继承类,也非常常用。
Java系列之Date、Number格式化工具类 _ JavaClub全栈架构师技术笔记

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。
Java系列之Date、Number格式化工具类 _ JavaClub全栈架构师技术笔记


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

同样的,Java中对number的格式化,常用的也是是JDK自己的格式化类NumberFormat和DecimalFormat。从API中我们可以看到DecimalFormat是NumberFormat的继承类,以此为例。
Java系列之Date、Number格式化工具类 _ JavaClub全栈架构师技术笔记

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同样都不是线程安全的哦。
Java系列之Date、Number格式化工具类 _ JavaClub全栈架构师技术笔记


作者:爱美有喜
来源链接:https://blog.csdn.net/shizhiailian/article/details/52317449

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/68086.html

分享给朋友:

“Java系列之Date、Number格式化工具类” 的相关文章

在JAVA 中将堆与栈分开的原因

栈是运行时的单位,而堆是存储的单位。 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;堆解决的是数据存储的问题,即数据怎么 放、放在哪儿。 注意:在Java中一个线程就会相应有一个线程栈与之对应 栈因为是运行单位,因此里面存储的信息都是跟...

动车上的书摘-java对象流与序列化

动车上的书摘-java对象流与序列化

动车上的书摘-java对象流与序列化摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢!钢笔不限贵便宜,书法是来自心对手的交流。-泥沙砖瓦浆木匠 一.对象序列化当需要存储相同类型的数据,选...

编写高质量代码改善java程序的151个建议——[52

编写高质量代码改善java程序的151个建议——[52

原创地址:   http://www.cnblogs.com/Alandre/  (泥沙砖瓦浆木匠),需要转载的,保留下! Thanks Although the world is full of...

java空指针异常:java.lang.NullPointException

一.什么是java空指针异常     我们都知道java是没有指针的,这里说的"java指针"指的就是java的引用,我们不在这里讨论叫指针究竟合不合适,而只是针对这个异常本身进行分析。空指针就是空引用,java空指针异常就是引用本身为空,却调用了方...

Java 基础【06】 Super 用法

     路漫漫其修远兮,吾将上下而求索。——屈原《离骚》      昨天写this用法总结的时候,突然产生了一个问题,请教别人之后,有了自己的一点认识。还是把它写下来,为大家更好的认识提供一点思路。 1)有人写了...

JavaWeb 并发:FOR UPDATE 实战,监测并解决。

JavaWeb 并发:FOR UPDATE 实战,监测并解决。

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket   一、前言 针对并发,老生常谈了。目前一个通用的做法有两种:锁机制:1.悲观锁;2.乐观锁。 但是这篇我主要用于记录我...

java枚举常见用法

用法一:常量   在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。      1 p...

Java内存管理:深入Java内存区域

Java内存管理:深入Java内存区域

对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每 一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。   对于Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不再需要为每一个new操作去...

Java实现文件的加密与解密

Java实现文件的加密与解密

Java实现文件的解密与解密,简单介绍了File、String类与MD5、SHA、DES及AES的基本知识。     最近在做一个项目,需要将资源文件(包括图片、动画等类型)进行简单的加密后再上传至云上的服务器,而在应用程序中对该资源使用前先将读取到的...

程序人生|都2021年了,现在转行搞JAVA还来的及么?

程序人生|都2021年了,现在转行搞JAVA还来的及么?

关注公众号“AI码师”领取2021最新面试资料和架构师教程 最近看到好多粉丝私信,问我:都2021年了,现在转行搞java还来的及么? 因为最近一直在写程序人生专栏,所以今天就以此为主题来写一篇文章,希望能够对那些准...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。