近期热点
·信息网络安全防范的几种措施
·企业网络安全的规划设计与实践
·网络安全之我见
·制造执行系统(MES)的应用与发展
·<连载>Protel二次开发从入门到精通
·<连载>Protel二次开发从入门到精通
 相关文章
·web化的PDM
·煮酒论英雄,漫谈Java数据库存取技术
·PHP + MYSQL 的OA为什么不值钱?
·基于WEB化的PDM系统
·嵌入式系统设计——崭新的挑战
·C语言已经过时 编程界再掀“垃圾”论
 相关博客
·JAVA OA系统相关--jboss入门jboss管理
 相关新闻
·
BEA推出WebLogic Real Time 2.0
·
BEA发布最新版本的Java虚拟机JRockit Mission Control 2.0
·
BEA发布积极扩张的策略和产品路线图 进军Java应用虚拟化市场
·
Oracle融合中间件为下一代SOA扩大开放标准
·
金蝶Apusic宣布推出创新Java消息中间件
·
微软将自2004年起停止在windows中纳入Java
 相关热贴
·真正无任何功能限制的JAVA OA下载
·高薪聘请JAVA人员,快来顶啦~~
·诚招PDM/PLM实施顾问和销售经理,JAVA开发人员
·linux+Oracle 10g的JAVA OA
·JAVA的极品OA表单自定义子系统
·JAVA极品OA表单自定义子平台-方便二次开发
 相关商城商品
 
 
当前位置:基础信息化 -> 开发语言
 
浅析Java中常见的Date类的应用技巧
发表时间:2005-6-10    来源:龙天
关键字:Java 
这种改进旨在更好的处理日期数据的国际化格式。 就象在JDK 1.1中一样, Date 类实际上只是一个包裹类,它包含的是一个长整型数据, 表示的是从GMT(格林尼治标准时间)1970年, 1 月1日00:00:00这一刻之前或者是之后经历的毫秒数。

    Date 类从Java 开发包(JDK) 1.0 就开始进化,当时它只包含了几个取得或者设置一个日期数据的各个部分的方法,比如说月,日,和年. 这些方法现在遭到了批评并且已经被转移到了Calendar类里去了, 我们将在本文中进一步讨论它。

    这种改进旨在更好的处理日期数据的国际化格式。 就象在JDK 1.1中一样, Date 类实际上只是一个包裹类,它包含的是一个长整型数据, 表示的是从GMT(格林尼治标准时间)1970年, 1 月1日00:00:00这一刻之前或者是之后经历的毫秒数。

    创建一个日期对象

    让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数的简单例子。 这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间。

    在星期六,2001年9月29日,下午大约是6:50的样子,上面的例子在系统输出设备上显示的结果是1001803809710。在这个例子中,值得注意的是我们使用了Date构造函数创建一个日期对象,这个构造函数没有接受任何参数。而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期。

    那么,现在我们已经知道了如何获取从1970年1月1日开始经历的毫秒数了。我们如何才能以一种用户明白的格式来显示这个日期呢?在这里类java.text.SimpleDateFormat和它的抽象基类java.text.DateFormat 就派得上用场了。

    日期数据的定制格式

    假如我们希望定制日期数据的格式, 比方星期六-9月-29日-2001年。 下面的例子展示了如何完成这个工作:

    只要通过向SimpleDateFormat 的构造函数传递格式字符串“EEE-MMMM-dd-yyyy”,我们就能够指明自己想要的格式。 你应该可以看见, 格式字符串中的ASCII 字符告诉格式化函数下面显示日期数据的哪一个部分。EEEE是星期,MMMM是月,dd是日,yyyy是年。字符的个数决定了日期是如何格式化的。传递“EE-MM-dd-yy”会显示 Sat-09-29-01。

    将文本数据解析成日期对象

    假设我们有一个文本字符串包含了一个格式化了的日期对象,而我们希望解析这个字符串并从文本日期数据创建一个日期对象。我们将再次以格式化字符串“MM-dd-yyyy” 调用SimpleDateFormat类,但是这一次,我们使用格式化解析而不是生成一个文本日期数据。我们的例子,显示在下面,将解析文本字符串“9-29-2001”并创建一个值为001736000000 的日期对象。

    例子程序:

    使用标准的日期格式化过程

    既然我们已经可以生成和解析定制的日期格式了,让我们来看一看如何使用内建的格式化过程。方法DateFormat.getDateTimeInstance()让我们得以用几种不同的方法获得标准的日期格式化过程。在下面的例子中,我们获取了四个内建的日期格式化过程。它们包括一个短的,中等的,长的,和完整的日期格式。 

    注意我们在对 getDateTimeInstance的每次调用中都传递了两个值。 第一个参数是日期风格,而第二个参数是时间风格。 它们都是基本数据类型int(整型)。 考虑到可读性, 我们使用了DateFormat 类提供的常量: SHORT, MEDIUM, LONG, 和 FULL。 

    运行我们的例子程序的时候, 它将向标准输出设备输出下面的内容:

 责任编辑:施南