收藏 分享(赏)

使用javatext包格式化数字和日期.doc

上传人:gnk289057 文档编号:6356628 上传时间:2019-04-09 格式:DOC 页数:8 大小:33.50KB
下载 相关 举报
使用javatext包格式化数字和日期.doc_第1页
第1页 / 共8页
使用javatext包格式化数字和日期.doc_第2页
第2页 / 共8页
使用javatext包格式化数字和日期.doc_第3页
第3页 / 共8页
使用javatext包格式化数字和日期.doc_第4页
第4页 / 共8页
使用javatext包格式化数字和日期.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、使用 javatext 包格式化数字和日期使用 java.text 包格式化数字和日期1.格式化数字在 NumberFormat 类中为我们提供了格式化 4 种数字的方法:整数、小数、货币和百分比,通过工厂方法 getNumberInstance, getNumberIntance, getCurrencyInstance, getPercentInstance方法获得相应的实例对象就行。例如我们要以字符串表示人民币88888.88 元,这样来写就行:NumberFormat nf = NumberFormat.getCurrencyInstance();System.out.println(

2、nf.format(88888.88);定制格式化数字可是对于稍微复杂一点的需求,NumberFormat 就满足不了了,幸好java 还提供了 DecimalFormat 实现定制的格式化。要使用DecimalFormat 对象,必须提供给它提供一个格式化的模式(pattern):String pattern = DecimalFormat df = new DecimalFormat(pattern);或者:DecimalFormat df = new DecimalFormat();df. applyPattern(pattern);然后就调用它的 format 方法就行了。所以关键就是

3、这个模式怎么定义。在 DecimalFormat 类的 JavaDoc中有模式的语法表示,不过很难说清楚(是我说不清楚,呵呵) ,请看看 Demo 自己多试试吧。下面是模式中某些字符的含义表:字符 含义0 一位数字,这一位缺失显示为 0。用来补零# 一位数字, 这一位缺失就不显示 . 小数点,不用多说了吧, 千位分隔符E 科学计数法% 百分比2.格式化日期把日期转化为字符串最简单的方法就是调用 Date 类的 toString 或者 toLocaleString 方法:System.out.println(new Date();输出:2004-8-7 8:16:14。可是如果我们想把月和日补成

4、 2 位不要时分秒 2004-08-07,这就不灵了。java.text.DateFormat 提供了大量的工 厂方法:getDateInstance(int style), getTimeInstance(int style), getDateTimeInstance(int dateStyle, int timeStyle)等等。其中 style 必须是DateFormat.LONG, DateFormat.MEDIUM, DateFormat.SHORT 之一。Demo 中的 defaultDateFormat 方法作了一个简单的实验。定制格式化日期:同样,java.text.Simpl

5、eDateFormat 可以通过模式(pattern)实现定制格式化:String pattern = SimpleDateFormat df = new SimpleDateFormat(pattern);或者:SimpleDateFormat df = new SimpleDateFormat();df. applyPattern(pattern);下面是 SimpleDateFormat 的 javadoc 中的一个模式符号简表:符号 意义 合法数值 示例y Year Year 1996; 96 M Month in year Month July; Jul; 07 d Day in m

6、onth Number 10 a Am/pm marker Text PM H Hour in day (0-23) Number 0 h Hour in am/pm (1-12) Number 12 m Minute in hour Number 30 s Second in minute Number 55 S Millisecond Number 978 z Time zone General time zone Pacific Standard Time; PST; GMT-8:00 Z Time zone RFC 822 time zone -0800注意的是,符号的大小写意义是不同

7、的,符号的个数也会导致输出不一样。例如用 MM 就会把 1 月份显示成 01,而用 M 则不会补零。对于年份,两个 yy 会只输出两位年份,yyyy 则会输出 4 位年份。实际上,上面的类还提供了很多其他方法,特别是用于本地化(Locale)定制格式化的方法,以及从字符串表示转化为相应对象的parse 方法,还有把格式化结果附加到一个 StringBuffer 的方法(应该是用来提高性能) 。最后是一个小 Demo 和输出结果:TestFormat.java:import java.text.*;import java.util.*;public class TestFormat public

8、 static void main(String args) defaultNumberFormat();System.out.println();customNumberFormat();System.out.println();defaultDateFormat();System.out.println();customDateFormat();System.out.println();public static void defaultNumberFormat() int i = 123456;double x = 882323.23523;double p = 0.528;double

9、 c = 52.83;NumberFormat nf = NumberFormat.getInstance();System.out.println(“Integer “ + i + “ is displayed as “ + nf.format(i);System.out.println(“Double “ + x + “ is displayed as “ + nf.format(x);NumberFormat nfInt = NumberFormat.getIntegerInstance();System.out.println(“Integer “ + i + “ is display

10、ed as “ + nfInt.format(i);NumberFormat nfNumber = NumberFormat.getNumberInstance();System.out.println(“Double “ + x + “ is displayed as “ + nfNumber.format(x);NumberFormat nfPercent = NumberFormat.getPercentInstance();System.out.println(“Percent “ + p + “ is displayed as “ + nfPercent.format(p);Numb

11、erFormat nfCurrency = NumberFormat.getCurrencyInstance();System.out.println(“Currency “ + p + “ is displayed as “ + nfCurrency.format(c);/这里没有涉及相应的 parse 方法public static void customNumberFormat() double x = 1000.0 / 3;System.out.println(“default output is “ + x);patternPrint(“#,#.#“, x);patternPrint

12、(“#.#“, x);patternPrint(“#.00“, x);patternPrint(“#.0#“, x);patternPrint(“00000.#“, x);patternPrint(“$#,#.#“, x);patternPrint(“0.#E0“, x);patternPrint(“00.#%“, x);double y = 23.0012;System.out.println(“default output is “ + y);patternPrint(“#,#.#“, y);patternPrint(“#.#“, y);patternPrint(“#.00“, y);pa

13、tternPrint(“#.0#“, y);patternPrint(“00000.#“, y);patternPrint(“$#,#.#“, y);patternPrint(“0.#E0“, y);patternPrint(“00.#%“, y);public static void patternPrint(String pattern, double x) DecimalFormat df = new DecimalFormat(pattern);System.out.println(“output for pattern “ + pattern + “ is “ + df.format

14、(x);public static void defaultDateFormat()Date date = new Date();System.out.println(“simple date “ + date.toLocaleString();DateFormat df = DateFormat.getDateTimeInstance();System.out.println(df.format(date);DateFormat dfLong = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);System.o

15、ut.println(dfLong.format(date);DateFormat dfMedium = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);System.out.println(dfMedium.format(date);DateFormat dfShort = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);System.out.println(dfShort.format(date);public sta

16、tic void customDateFormat() Date date = new Date();patternPrint(“yyyy.MM.dd HH:mm:ss z“, date); /两个 MM, dd会导致补零patternPrint(“yy 年 M 月 d 日 HH 时 mm 分“, date); /两个 yy 就显示为两位年份patternPrint(“EEE, MMM d, yy“, date);patternPrint(“h:mm a“, date);patternPrint(“hh oclock a, zzzz“, date);patternPrint(“yyyyy.MM

17、MMM.dd GGG hh:mm aaa“, date);patternPrint(“EEE, d MMM yyyy HH:mm:ss Z“, date);patternPrint(“yyMMddHHmmssZ“, date);public static void patternPrint(String pattern, Date date)SimpleDateFormat df = new SimpleDateFormat(pattern);System.out.println(df.format(date);输出:Integer 123456 is displayed as 123,456

18、Double 882323.23523 is displayed as 882,323.235Integer 123456 is displayed as 123,456Double 882323.23523 is displayed as 882,323.235Percent 0.528 is displayed as 53%Currency 0.528 is displayed as ¥52.83default output is 333.3333333333333output for pattern #,#.# is 333.33output for pattern #.# is 333

19、.33output for pattern #.00 is 333.33output for pattern #.0# is 333.33output for pattern 00000.# is 00333.33output for pattern $#,#.# is $333.33output for pattern 0.#E0 is 3.333E2output for pattern 00.#% is 33333.33%default output is 23.0012output for pattern #,#.# is 23output for pattern #.# is 23ou

20、tput for pattern #.00 is 23.00output for pattern #.0# is 23.0output for pattern 00000.# is 00023output for pattern $#,#.# is $23output for pattern 0.#E0 is 2.3E1output for pattern 00.#% is 2300.12%simple date 2004-8-7 8:16:142004-8-7 8:16:142004 年 8 月 7 日 上午 08 时 16 分 14 秒2004-8-7 8:16:1404-8-7 上午 8:162004.08.07 08:16:14 GMT+08:0004 年 8 月 7 日 08 时 16 分星期六, 八月 7, 048:16 上午08 oclock 上午, GMT+08:0002004.八月.07 公元 08:16 上午星期六, 7 八月 2004 08:16:14 +0800040807081614+0800

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报