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

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. Alink漫谈(五) : 迭代计算和Superstep

    Alink漫谈(五) : 迭代计算和Superstep 目录 Alink漫谈(五) : 迭代计算和Superstep 0x00 摘要 0x01 缘由 0x02 背景概念 2.1 四层执行图 2.2 T ...

  2. Vue 哈希换histroy

    这个需要后端支持一下 前端配置在router下的index.js配置如下: import Vue from 'vue' import Router from 'vue-router' import I ...

  3. 基于GTID搭建主从MySQL

    目录 基于gtid搭建主从MySQL 一.GTID的使用 二.GTID的简介 三.GTID的构成 四.查看GTID的执行情况 4.1 gtid_executed 4.2 gtid_own 4.3 gt ...

  4. Vue中keep-alive的使用

    Vue中keep-alive的使用我总结的有两种方式应用: 首先简述一下keep-alive的作用,kee-alive可以缓存不活动的的组件.当组件之间进行相互切换的时候,默认会销毁,当重新切换回来时 ...

  5. Java实现 蓝桥杯VIP 算法提高 交换Easy

    算法提高 交换Easy 时间限制:1.0s 内存限制:512.0MB 问题描述 给定N个整数组成的序列,每次交换当前第x个与第y个整数,要求输出最终的序列. 输入格式 第一行为序列的大小N(1< ...

  6. Java实现 LeetCode 139 单词拆分

    139. 单词拆分 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词. 你可 ...

  7. Java实现 LeetCode 67 二进制求和

    67. 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11", b = "1 ...

  8. Java实现第十届蓝桥杯JavaC组第十题(试题J)扫地机器人

    扫地机器人 时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分 [问题描述] 小明公司的办公区有一条长长的走廊,由 N 个方格区域组成,如下图所 示. 走廊内部署了 K 台扫地机器人 ...

  9. java中ReentrantLock类的详细介绍(详解)

    博主如果看到请联系小白,小白记不清地址了 简介 ReentrantLock是一个可重入且独占式的锁,它具有与使用synchronized监视器锁相同的基本行为和语义,但与synchronized关键字 ...

  10. Java实现 洛谷 P1487 陶陶摘苹果(升级版)

    题目描述 又是一年秋季时,陶陶家的苹果树结了n个果子.陶陶又跑去摘苹果,这次她有一个a公分的椅子.当他手够不着时,他会站到椅子上再试试. 这次与NOIp2005普及组第一题不同的是:陶陶之前搬凳子,力 ...