simpleDateFormate DecimalFormate MessageFormate的用法

Format 是一个用于格式化语言环境敏感的信息(如日期、消息和数字)的抽象基类
Java 平台为格式化日期、消息和数字分别提供了三个特殊的 Format 的子类:DateFormat、MessageFormat 和 NumberFormat
方法
String format(Object obj) 格式化一个对象以生成一个字符串。
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间
方法:
1.获取DateFormat对象
1.1static DateFormat getDateInstance()
获取日期格式器,该格式器具有默认语言环境的默认格式化风格
1.2
static DateFormat getDateInstance(int style, Locale aLocale)
获取日期格式器,该格式器具有给定语言环境的给定格式化风格
1.3
static DateFormat getDateTimeInstance(int dateStyle, int timeStyle)
获取日期/时间格式器,该格式器具有默认语言环境的给定日期和时间格式化风格
1.4
static DateFormat getTimeInstance(int style)
获取时间格式器,该格式器具有默认语言环境的给定格式化风格
eg:Date date=new Date();
SimpleDateFormat df=new SimpleDateFormat("hh:mm:ss");
System.out.println(df.format(date));
01:37:15


DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。
支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以本地化。
符号含义:

0 一个数字

# 一个数字,不包括 0

. 小数的分隔符的占位符

, 分组分隔符的占位符

; 分隔格式。

- 缺省负数前缀。

% 乘以 100 和作为百分比显示

? 乘以 1000 和作为千进制货币符显示;用货币符号代替;如果双写,用

国际货币符号代替。如果出现在一个模式中,用货币十进制分隔符代

替十进制分隔符。

X 前缀或后缀中使用的任何其它字符,用来引用前缀或后缀中的特殊字符。

例子:

DecimalFormat df1 = new DecimalFormat("00.0000");
System.out.println(df1.format(123.12));
0:代表数字 长了补0短了不变

DecimalFormat df1 = new DecimalFormat("##.###");
System.out.println(df1.format(123.12));
#:正好相反 长了不补 短了就省


DecimalFormat format = new DecimalFormat("###,####.000");
System.out.println(format.format(111111123456.1227222));

Locale.setDefault(Locale.US);
DecimalFormat usFormat = new DecimalFormat("###,###.000");
System.out.println(usFormat.format(111111123456.1227222));

DecimalFormat addPattenFormat = new DecimalFormat();
addPattenFormat.applyPattern("##,###.000");
System.out.println(addPattenFormat.format(111111123456.1227));

DecimalFormat zhiFormat = new DecimalFormat();
zhiFormat.applyPattern("0.000E0000");
System.out.println(zhiFormat.format(10000));
System.out.println(zhiFormat.format(12345678.345));

DecimalFormat percentFormat = new DecimalFormat();
percentFormat.applyPattern("#0.000%");
System.out.println(percentFormat.format(0.3052222));
1111,1112,3456.123
111,111,123,456.123
111,111,123,456.123
1.000E0004
1.235E0007
30.522%
如果使用具有多个分组字符的模式,则最后一个分隔符和整数结尾之间的间隔才是使用的分组大小。所以 "#,##,###,####" == "######,####" == "##,####,####"。

MessageFormat 提供了以与语言无关方式生成连接消息的方式。使用此方法构造向终端用户显示的消息。

MessageFormat 获取一组对象,格式化这些对象,然后将格式化后的字符串插入到模式中的适当位置

posted @ 2017-11-29 14:00  villiankiller  阅读(438)  评论(0编辑  收藏  举报