`

使用java.text包格式化数字和日期

    博客分类:
  • J2SE
阅读更多
TestFormat.java

import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestFormat {
public 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 c = 52.83;

   NumberFormat nf = NumberFormat.getInstance();
   System.out.println("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("NumberFormat.getIntegerInstance()");
   System.out.println("Integer " + i + " is displayed as "
     + nfInt.format(i));
  
   NumberFormat nfNumber = NumberFormat.getNumberInstance();
   System.out.println("NumberFormat.getNumberInstance()");
   System.out.println("Double " + x + " is displayed as "
     + nfNumber.format(x));

   NumberFormat nfPercent = NumberFormat.getPercentInstance();
   System.out.println("NumberFormat.getPercentInstance()");
   System.out.println("Percent " + p + " is displayed as "
     + nfPercent.format(p));

   NumberFormat nfCurrency = NumberFormat.getCurrencyInstance();
   System.out.println("NumberFormat.getCurrencyInstance()");
   System.out.println("Currency " + c + " is displayed as "
     + nfCurrency.format(c));

   // 这里没有涉及相应的parse方法

}

public static void customNumberFormat() {

   double x = 1000.0 / 3;

   System.out.println("default output is " + x);//333.3333333333333
   patternPrint("###,###.##", x);//333.33
   patternPrint("####.##", x);//333.33
   patternPrint("####.00", x);//333.33
   patternPrint("####.0#", x);//333.33
   patternPrint("00000.##", x);//00333.33
   patternPrint("$###,###.##", x);//$333.33
   patternPrint("0.###E0", x);//3.333E2
   patternPrint("00.##%", x);//33333.33%
   double y = 23.0012;
   System.out.println("default output is " + y);//23.0012
   patternPrint("###,###.##", y);//23
   patternPrint("####.##", y);//23
   patternPrint("####.00", y);//23.00
   patternPrint("####.0#", y);//23.0
   patternPrint("00000.##", y);//00023
   patternPrint("$###,###.##", y);//$23
   patternPrint("0.###E0", y);//2.3E1
   patternPrint("00.##%", y);//2300.12%

}

public static void patternPrint(String pattern, double x) {

   DecimalFormat df = new DecimalFormat(pattern);
   System.out.println("output for pattern " + pattern + " is "
     + df.format(x));

}

public static void defaultDateFormat() {

   Date date = new Date();
   System.out.println("simple date " + date.toLocaleString());//2007-8-31 14:40:24

   DateFormat df = DateFormat.getDateTimeInstance();
   System.out.println(df.format(date));//2007-8-31 14:40:24

   DateFormat dfLong = DateFormat.getDateTimeInstance(DateFormat.LONG,
     DateFormat.LONG);
   System.out.println(dfLong.format(date));//2007年8月31日 下午02时40分24秒

   DateFormat dfMedium = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
   DateFormat.MEDIUM);
   System.out.println(dfMedium.format(date));//2007-8-31 14:40:24
   DateFormat dfShort = DateFormat.getDateTimeInstance(DateFormat.SHORT,
     DateFormat.SHORT);
   System.out.println(dfShort.format(date));//07-8-31 下午2:40

}

public static void customDateFormat() {

   Date date = new Date();
   patternPrint("yyyy.MM.dd HH:mm:ss z", date); // 两个MM, dd会导致补零//2007.08.31 14:40:24 CST
   patternPrint("yy年M月d日 HH时mm分", date); // 两个yy就显示为两位年份//07年8月31日 14时40分
   patternPrint("EEE, MMM d, ''yy", date);//星期五, 八月 31, '07
   patternPrint("h:mm a", date);//2:40 下午
   patternPrint("hh 'o''clock' a, zzzz", date);//02 o'clock 下午, 中国标准时间
   patternPrint("yyyyy.MMMMM.dd GGG hh:mm aaa", date);//02007.八月.31 公元 02:40 下午
   patternPrint("EEE, d MMM yyyy HH:mm:ss Z", date);//星期五, 31 八月 2007 14:40:24 +0800
   patternPrint("yyMMddHHmmssZ", date);//070831144024+0800

}

public static void patternPrint(String pattern, Date date) {

   SimpleDateFormat df = new SimpleDateFormat(pattern);
   System.out.println(df.format(date));
}

}


输出:

NumberFormat.getInstance()
Integer 123456 is displayed as 123,456
Double 882323.23523 is displayed as 882,323.235
NumberFormat.getIntegerInstance()
Integer 123456 is displayed as 123,456
NumberFormat.getNumberInstance()
Double 882323.23523 is displayed as 882,323.235
NumberFormat.getPercentInstance()
Percent 0.528 is displayed as 53%
NumberFormat.getCurrencyInstance()
Currency 0.528 is displayed as ¥52.83

default output is 333.3333333333333
output for pattern ###,###.## is 333.33
output for pattern ####.## is 333.33
output for pattern ####.00 is 333.33
output for pattern ####.0# is 333.33
output for pattern 00000.## is 00333.33
output for pattern $###,###.## is $333.33
output for pattern 0.###E0 is 3.333E2
output for pattern 00.##% is 33333.33%
default output is 23.0012
output for pattern ###,###.## is 23
output for pattern ####.## is 23
output for pattern ####.00 is 23.00
output for pattern ####.0# is 23.0
output for pattern 00000.## is 00023
output for pattern $###,###.## is $23
output for pattern 0.###E0 is 2.3E1
output for pattern 00.##% is 2300.12%

simple date 2007-8-31 14:40:24
2007-8-31 14:40:24
2007年8月31日 下午02时40分24秒
2007-8-31 14:40:24
07-8-31 下午2:40

2007.08.31 14:40:24 CST
07年8月31日 14时40分
星期五, 八月 31, '07
2:40 下午
02 o'clock 下午, 中国标准时间
02007.八月.31 公元 02:40 下午
星期五, 31 八月 2007 14:40:24 +0800
070831144024+0800

分享到:
评论

相关推荐

    java 核心API(java.text) 程序例子

    其中,`java.text`包是专门处理文本格式化、国际化和本地化的重要工具集,广泛用于日期、时间、数字、货币、数字格式化等方面。在这个包中,有许多关键的类和接口,例如`Format`、`NumberFormat`、`DateFormat`、`...

    java数据格式化

    例如,以下代码展示了如何使用`DecimalFormat`格式化数字: ```java DecimalFormat df = new DecimalFormat("#,###.##"); double number = 1234567.89; String formattedNumber = df.format(number); ``` 这里,`#...

    java将数字转换为时间格式

    Java提供了多种处理日期和时间的方式,包括传统的`java.util.Date`和`java.text.SimpleDateFormat`等类,以及自Java 8起引入的新API如`java.time`包下的`LocalDate`、`LocalTime`和`LocalDateTime`等。 - **传统API...

    Java字符串 日期 数字格式化输出.doc

    ### 格式化数字输出 在`java.text`包中,`NumberFormat`类提供了一种标准的方式来格式化各种类型的数字,包括整数、小数、货币和百分比。你可以通过以下工厂方法获取相应的实例: - `NumberFormat....

    JAVA_API1.6文档(中文)

    java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...

    Java日期转换

    `SimpleDateFormat`是`java.text`包中的一个具体类,它是一个强大的日期和时间格式化工具。通过提供模式字符串,你可以定制日期和时间的显示格式。例如,"yyyy-MM-dd HH:mm:ss"模式会将日期格式化为“年-月-日 时:分...

    与众不同的 Java 日期格式化大全

    在 Java 中,我们通常使用 `java.text.SimpleDateFormat` 类来处理日期和时间字符串的格式化。 日期格式化基础 在 Java 中,我们可以使用 `java.text.SimpleDateFormat` 类的 `format` 方法将日期对象格式化为符合...

    Java字符串_日期_数字格式化输出

    本文将详细探讨Java中的字符串、日期以及数字的格式化输出技术,特别是针对初学者如何理解和掌握这些基本操作。 #### 二、Java字符串格式化输出 在Java中,`System.out.println()` 是最常用的打印输出语句,但当...

    java SimpleDateFormat &Calendar

    `SimpleDateFormat`是Java `java.text`包中的一个具体类,它提供了一个用于格式化和解析日期的强类型模式系统。这个类的主要作用是将日期或时间对象转换为字符串,或者将字符串转换为日期对象。`SimpleDateFormat`的...

    Struts2 格式化日期、时间和数字

    例如,你可以使用Java的`SimpleDateFormat`或`DecimalFormat`类对日期和数字进行处理,然后将格式化后的值返回到`ValueStack`。 在实际应用中,你可能需要处理用户输入的日期和数字。这时,你可以使用Struts2的拦截...

    Java核心API

    Java.text包支持文本的格式化、查找和操作,包括日期时间、数字和货币的格式化,是国际化和本地化的重要工具。 #### Java.util Java.util包包含了大量常用的工具类和集合框架,如List、Map、Set等,是日常开发中最...

    javaapi.zip

    8. **国际化与本地化**:`java.text` 和 `java.util.Locale` 提供了处理不同地区和语言的工具,支持日期、数字和字符串的格式化。 9. **事件处理**:Java AWT 和 Swing 图形用户界面库中包含了事件处理模型,允许...

    java api最新7.0

    java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...

    java1.6.api

    7. **国际化**:`java.text`和`java.util.Locale`类支持多语言环境下的文本处理和日期时间格式化。 8. **JDBC**:Java Database Connectivity API允许Java程序与各种数据库进行交互。`java.sql`包包含了连接管理、...

    Java 1.6 API 中文 New

    java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...

    JavaAPI1.6中文chm文档 part1

    java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...

    java jdk-api-1.6 中文 chmd

    java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...

    [Java参考文档].JDK_API 1.6

    java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...

    JavaAPI中文chm文档 part2

    java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...

Global site tag (gtag.js) - Google Analytics