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

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%

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

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");

java常用的格式化的更多相关文章

  1. Java常用jar包用途

    Java常用jar包用途: USAGE INDEX JAR NAME USAGE 1 ASM asm-2.2.3.jar ASM字节码库 2 ASM asm-commons-2.2.3.jar ASM ...

  2. java常用的包的简介

    java常用的包: java.lang:包含java语言的核心类,如String.math.system和thread类等,使用这个包下的类无需import导入,系统会自动导入这个包下的所有类.   ...

  3. Java常用API

    常用Java API 一. java.io.BufferedReader类(用于从文件中读入一段字符:所属套件:java.io) 1. 构造函数BufferedReader(java.io.FileR ...

  4. java常用API的总结(1)

    本篇是对于这一段时间以来接触到的常用api的一些总结,便于以后的查阅.... 一.正则表达式 对于正则表达式,我的感觉就是当我们在做某些题的时候正则表达式会省去我们很多的时间,并且正则表达式的使用格式 ...

  5. Java 常用知识点

    Java 常用知识点 1.日期格式化 SimpleDateFormat Date date=new Date(System.currentTimeMillis()) ; SimpleDateForma ...

  6. JAVA(三)JAVA常用类库/JAVA IO

    成鹏致远 | lcw.cnblog.com |2014-02-01 JAVA常用类库 1.StringBuffer StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不 ...

  7. Eclipse Java常用快捷键(Eclipse Shortcut Keys for Java Top10)(转)

    Eclipse Java常用快捷键(Eclipse Shortcut Keys for Java Top10) 0.背景Eclipse作为Java的OpenSource开发IDE,已经是开发人员进行J ...

  8. java常用英语单词

    abstract (关键字) 抽象 ['.bstr.kt] access vt.访问,存取 ['.kses]'(n.入口,使用权) algorithm n.算法 ['.lg.riem] annotat ...

  9. JavaEE-实验一 Java常用工具类编程

    该博客仅专为我的小伙伴提供参考而附加,没空加上代码具体解析,望各位谅解 1.  使用类String类的分割split 将字符串  “Solutions to selected exercises ca ...

随机推荐

  1. 【补充说明】Gauge框架在JS中的简单应用

    这里做一个总结 由于公司架构要用node来替代Java的部分服务,所以就研究了这个自动化测试框架:它可以很方便的测试我们的接口,而且还能使用断言[assert]来判断是否是我们预期的结果. 但是呢,由 ...

  2. 关于oauth安全

    白话认证流程 A)用户打开客户端以后,客户端要求用户给予授权.(比如说你登陆淘宝,通过QQ这个第三方来登录时,这个时候淘宝将你引导至QQ的认证服务器) B)用户同意给客户端授权.(这个时候在你手机上弹 ...

  3. MongoDB学习(一) 安装与基本使用

    链接:https://pan.baidu.com/s/1ogTDFJg3ZZc0CyzaTeswWg 提取码:2k0p 安装 // 将压缩包解压到指定目录 [bigdata@linux backup] ...

  4. JAVASE(九)面向对象特性之 : 继承性、方法重写、关键字super、

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.继承性 1.1 为什么要类的继承性?(继承性的好处) ①减少了代码的冗余,提高了代码的复用性:②更好 ...

  5. (Java实现) 最大团问题 部落卫队

    首先介绍下最大团问题: 问题描述:给一个无向图G=(V,E) ,V是顶点集合,E是边集合.然后在这顶点集合中选取几个顶点,这几 个顶点任意两个之间都有边在E中.求最多可以选取的顶点个数.这几个顶点就构 ...

  6. Java实现 LeetCode 696 计数二进制子串(暴力)

    696. 计数二进制子串 给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的. 重复出现的子串要计算它们出现的次数. 示例 1 ...

  7. Java实现 LeetCode 188 买卖股票的最佳时机 IV

    188. 买卖股票的最佳时机 IV 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意: 你不能同时参与多 ...

  8. CSDN账号被冻结了怎么办

    CSDN可能因为你的博客里有一些网站链接给你判断为恶意推广广告,冻结, 或者和我一样,在评论区刷屏被冻结, 联系客服即可,向客服提供你的绑定邮箱或绑定手机号,或博客id,客服会给你解冻 PS: 找不到 ...

  9. SQL Server账号密码(sa)登录失败 错误原因:18456

    (其实以前经常用的时候,都很简单,最近一段时间不用了,再一看发现都忘记的差不多了,还是写一篇博客吧,防止下一次再在这种问题上面浪费时间) 使用window登录 打开属性 打开安全性 选择SQL ser ...

  10. window10下通过docker安装swoole,运行laravel-swoole服务

    最近公司压测一个接口,用laravel框架,业务逻辑就是从缓存中取数据,tps总是上不去,于是决定换下swoole来替换php-fpm,来处理php请求,tps比原来高了好几倍. 现在有个问题就是wi ...