- 浏览: 554818 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (162)
- 软件开发过程 (15)
- Java基础 (16)
- web开发 (20)
- Workflow应用 (0)
- 心情 (18)
- Oracle数据库 (26)
- MySQL数据库 (11)
- Struts应用 (9)
- Hibernate应用 (3)
- Spring应用 (1)
- C#开发 (0)
- iBatis应用 (0)
- Tomcat (10)
- PHP开发 (1)
- Linux (13)
- 设计原则总结 (1)
- 网站开发管理 (6)
- PowerDesigner (3)
- 系统架构 (3)
- 算法 (1)
- 国外接job (0)
- Lucene (1)
- Android (1)
- SEO技术 (1)
- Javascript (1)
最新评论
-
yu_meiguang:
真心感谢啊,找了半天才知道是这个以时间戳问题导致的问题
oracle分页查询数据重复问题 -
funnyone:
[u][b][i][flash=200,200][url][i ...
Oracle - Round函数 -
字母哥:
不错 今天用到了 时间戳排序的话有一样的就排序数据乱了
oracle分页查询数据重复问题 -
lelong:
xuhu_java 写道您好!我想问一下
select rou ...
Oracle - Round函数 -
xuhu_java:
您好!我想问一下select round(123456.788 ...
Oracle - Round函数
在C中可以使用类似printf(“%d %8.2f\n”, 1001, 52.335)的方法实现格式化输出,可是Java中的System.out.println()并没有对应的功能。要格式化输出,必须使用java.text包中的类来实现类似的操作(要不怎么体现面向对象的优越性呢,不过据说jdk1.5准备又补上)。当然了,java.text包的功能还是很强大的,奇怪的是很多书中都没有涉及,而一般谁又有工夫整天去看API?
注意:由于这里说得很简略,因此请参照下面的Demo程序。
格式化数字
在NumberFormat类中为我们提供了格式化4种数字的方法:整数、小数、货币和百分比,通过工厂方法getNumberInstance, getNumberIntance, getCurrencyInstance, getPercentInstance方法获得相应的实例对象就行。例如我们要以字符串表示人民币88888.88元,这样来写就行:
NumberFormat nf = NumberFormat.getCurrencyInstance();
System.out.println(nf.format(88888.88));
定制格式化数字
可是对于稍微复杂一点的需求,NumberFormat就满足不了了,幸好java还提供了DecimalFormat实现定制的格式化。要使用DecimalFormat对象,必须提供给它提供一个格式化的模式(pattern):
String pattern = …
DecimalFormat df = new DecimalFormat(pattern);
或者:
DecimalFormat df = new DecimalFormat();
df. applyPattern(pattern);
然后就调用它的format方法就行了。
所以关键就是这个模式怎么定义。在DecimalFormat类的JavaDoc中有模式的语法表示,不过很难说清楚(是我说不清楚,呵呵),请看看Demo自己多试试吧。下面是模式中某些字符的含义表:
字符 |
含义 |
0 |
一位数字,这一位缺失显示为0。用来补零 |
# |
一位数字, 这一位缺失就不显示 |
. |
小数点,不用多说了吧 |
, |
千位分隔符 |
E |
科学计数法 |
% |
百分比 |
格式化日期
把日期转化为字符串最简单的方法就是调用Date类的toString或者toLocaleString方法:
System.out.println(new Date());
输出:2004-8-7 8:16:14。可是如果我们想把月和日补成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.SimpleDateFormat可以通过模式(pattern)实现定制格式化:
String pattern = …
SimpleDateFormat df = new SimpleDateFormat(pattern);
或者:
SimpleDateFormat df = new SimpleDateFormat();
df. applyPattern(pattern);
下面是SimpleDateFormat的javadoc中的一个模式符号简表:
符号 |
意义 |
合法数值 |
示例 |
y |
Year |
1996; 96 |
|
M |
Month in year |
July; Jul; 07 |
|
d |
Day in month |
10 |
|
a |
Am/pm marker |
PM |
|
H |
Hour in day (0-23) |
0 |
|
h |
Hour in am/pm (1-12) |
12 |
|
m |
Minute in hour |
30 |
|
s |
Second in minute |
55 |
|
S |
Millisecond |
978 |
|
z |
Time zone |
Pacific Standard Time; PST; GMT-08:00 |
|
Z |
Time zone |
-0800 |
注意的是,符号的大小写意义是不同的,符号的个数也会导致输出不一样。例如用MM就会把1月份显示成01,而用M则不会补零。对于年份,两个yy会只输出两位年份,yyyy则会输出4位年份。
实际上,上面的类还提供了很多其他方法,特别是用于本地化(Locale)定制格式化的方法,以及从字符串表示转化为相应对象的parse方法,还有把格式化结果附加到一个StringBuffer的方法(应该是用来提高性能)。
最后是一个小Demo和输出结果:
TestFormat.java:
import java.text.*;
import java.util.*;
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("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 displayed 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));
NumberFormat nfCurrency = NumberFormat.getCurrencyInstance();
System.out.println("Currency " + p + " is displayed as " + nfCurrency.format(c));
//这里没有涉及相应的parse方法
}
public static void customNumberFormat() {
发表评论
-
Integer大小比较的问题
2014-05-22 12:29 638public static void main(String ... -
JAXB安装与编译器使用(转)
2013-06-07 14:59 1613JAXB (Java Architecture for XM ... -
Java中关于OutOfMemoryError的场景及解决方法
2012-12-17 10:18 50431、OOM for Heap=>例如:java.lang ... -
压缩代码
2012-05-11 13:38 0import java.io.ByteArrayInputSt ... -
Java性能故障排除工具(转)
2011-11-03 14:04 7091.jconsole是随着JDK 1.5而 ... -
静态类 static class (转载)
2011-05-18 02:31 1164转自:http://klcwt.iteye.com ... -
XML与DTD总结
2010-11-22 03:57 0DTD文件的作用是什么? 对标记编制文档 加强 ... -
Log4j 笔记
2010-08-19 09:18 1000困惑了很久的日志使用。用于记录自己的使用过程。 ... -
BufferedImage 与像素级渲染(转载)
2010-07-14 14:45 2893常有人说 Java 图形渲染很慢?嗯,相对 C/C++ 而言, ... -
java.util.UUID 使用
2010-04-12 13:57 7704近来要生成一唯一标识,想不到java基础类库里有这种工具,记录 ... -
外企面试中常用到的英语问答
2008-10-13 23:42 1013找一份满意的工作吗?外企面试中面对外国老板连珠炮似的提问,有没 ... -
JAVA日期加减运算
2008-07-05 13:54 13761public static Date getBeforeMo ... -
JAVA中转义字符
2008-07-01 15:55 41281.八进制转义序列:\ + 1到3位5数字;范围'\000' ... -
java 二进制兼容性 (转载)
2008-05-28 21:01 1906现在做的一个项目需要维持两个版本,一个ASP(Applica ... -
[转帖]ant中文教程(二)
2007-07-25 16:50 31123 编写build.xml Ant的buildfile是用 ... -
[转帖]ant中文教程(一)
2007-07-25 16:26 18861 Ant是什么? Apache Ant 是一个基于 Jav ... -
Java转义字符
2007-06-04 17:10 14啊 -
Struts 动态单选按钮组
2007-05-29 16:50 60一般情况,使用嵌套 Struts 标签 < ... -
整合Spring与Struts
2007-06-05 17:33 40环境:Eclipse3.2+tomcat5.5+mysql5. ... -
Portlet 是什么 ?
2007-04-12 10:01 8582Portlets “Portlets是 ...
相关推荐
其中,`java.text`包是专门处理文本格式化、国际化和本地化的重要工具集,广泛用于日期、时间、数字、货币、数字格式化等方面。在这个包中,有许多关键的类和接口,例如`Format`、`NumberFormat`、`DateFormat`、`...
例如,以下代码展示了如何使用`DecimalFormat`格式化数字: ```java DecimalFormat df = new DecimalFormat("#,###.##"); double number = 1234567.89; String formattedNumber = df.format(number); ``` 这里,`#...
Java提供了多种处理日期和时间的方式,包括传统的`java.util.Date`和`java.text.SimpleDateFormat`等类,以及自Java 8起引入的新API如`java.time`包下的`LocalDate`、`LocalTime`和`LocalDateTime`等。 - **传统API...
### 格式化数字输出 在`java.text`包中,`NumberFormat`类提供了一种标准的方式来格式化各种类型的数字,包括整数、小数、货币和百分比。你可以通过以下工厂方法获取相应的实例: - `NumberFormat....
java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...
`SimpleDateFormat`是`java.text`包中的一个具体类,它是一个强大的日期和时间格式化工具。通过提供模式字符串,你可以定制日期和时间的显示格式。例如,"yyyy-MM-dd HH:mm:ss"模式会将日期格式化为“年-月-日 时:分...
在 Java 中,我们通常使用 `java.text.SimpleDateFormat` 类来处理日期和时间字符串的格式化。 日期格式化基础 在 Java 中,我们可以使用 `java.text.SimpleDateFormat` 类的 `format` 方法将日期对象格式化为符合...
本文将详细探讨Java中的字符串、日期以及数字的格式化输出技术,特别是针对初学者如何理解和掌握这些基本操作。 #### 二、Java字符串格式化输出 在Java中,`System.out.println()` 是最常用的打印输出语句,但当...
`SimpleDateFormat`是Java `java.text`包中的一个具体类,它提供了一个用于格式化和解析日期的强类型模式系统。这个类的主要作用是将日期或时间对象转换为字符串,或者将字符串转换为日期对象。`SimpleDateFormat`的...
例如,你可以使用Java的`SimpleDateFormat`或`DecimalFormat`类对日期和数字进行处理,然后将格式化后的值返回到`ValueStack`。 在实际应用中,你可能需要处理用户输入的日期和数字。这时,你可以使用Struts2的拦截...
Java.text包支持文本的格式化、查找和操作,包括日期时间、数字和货币的格式化,是国际化和本地化的重要工具。 #### Java.util Java.util包包含了大量常用的工具类和集合框架,如List、Map、Set等,是日常开发中最...
8. **国际化与本地化**:`java.text` 和 `java.util.Locale` 提供了处理不同地区和语言的工具,支持日期、数字和字符串的格式化。 9. **事件处理**:Java AWT 和 Swing 图形用户界面库中包含了事件处理模型,允许...
java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...
7. **国际化**:`java.text`和`java.util.Locale`类支持多语言环境下的文本处理和日期时间格式化。 8. **JDBC**:Java Database Connectivity API允许Java程序与各种数据库进行交互。`java.sql`包包含了连接管理、...
java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...
java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...
java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...
java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...
java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...