Java基础:Date和Calendar类的使用方法

转载 2012年03月21日 12:28:08
 

Date和Calendar是JAVA类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着很重要的地位,所以在这里想对这两个类进行一个基本的讲解,由于技术有限,不到之处请指正。

Date类顾名思义,一看就知道是和日期有关的类了,这个类最主要的作用就是获得当前时间了,然而这个类里面也具有设置时间以及一些其他的功能,可是由于本身设计的问题,这些方法却遭到众多批评,而这些遭受批评的功能都已移植到另外一个类里面,这就是今天要讲到的第二个类Calendar里面。

在讲两个类之前,这里又不能不多提一个类,那就是DateFormat类,这个类是用来格式化日期的,稍后也会讲到。

首先,让我们来看一个获取当前时间的例子:

Date date = new Date();
System.out.println(date.getTime());

上面的语句首先创建了Date的一个对象,接着使用getTime方法获得当前的时间,但是注意了,输出后的结果确实一串长整型的数字,这是为什么?实际上这是系统根据当前时间计算出来的一个long型的数,至于是如何计算出来的就不在本文中讲述了,那既然这样的话又如何显示正确的时间呢?这就要利用到上面的DateFormat类了,这个类是一个基类,它有一个子类是SimpleDateFormat,具体用法请看下面的代码:

Date date = new Date();
SimpleDateFormat dateFm = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");
System.out.println(dateFm.format(date));

这段代码开始创建了一个Date的对象,用来获取当前时间,而重点就在于后面的SimpleDateFormat对象,这个对继承了DateFormat,利用format方法对Date对象进行格式化,然后输出,而格式的定制是由用户定制的,EEEE代表星期,MMMM代表月份,而dd代表日,yyyy代表年。使用这个方法就可以根据用户自定义的格式进行输出时间。

上面介绍了由用户自定义格式的输出时间,下面将来介绍通过JAVA类库提供的标准格式输出时间,这就要用到DateFormat类了,请看以下代码:

Date date = new Date();
DateFormat dateFm = DateFormat.getDateTimeInstance(DateFormat.SHORT,
DateFormat.SHORT);
System.out.println(dateFm.format(date));

这里使用的方法和用户自定义的方法差不多,只是这里使用的是一个抽象类,由于DateFormat是一个抽象类,所以它不能通过构造函数构造对象,在这里是通过getDateTimeInstance()方法获得该对象,而所传递的参数就是DateFormat里面定义的一些常量,系统根据这些常量输出当前时间,由于这里使用的是getDateTimeInstance方法,所以将传递两个常量参数,用来分别格式化日期和当前的时间。

上面讲述了如何获得系统时间以及如何格式化输出,那如果想获取或者设置时间当中的某一部分又该如何呢?例如年,月,日。这就要靠Calendar这个类了,这个类也是一个抽象类,它有一个子类GregorianCalendar,接下来我会利用这个子类来演示这个过程,请看以下代码:

DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);

GregorianCalendar cal = new GregorianCalendar();

cal.setTime(new Date());

System.out.println("System Date: " + dateFormat.format(cal.getTime()));

cal.set(GregorianCalendar.DAY_OF_WEEK,GregorianCalendar.FRIDAY);
System.out.println("After Setting Day of Week to Friday: " +
dateFormat.format(cal.getTime()));

这段代码当中,首先创建了一个DateFormat对象进行格式设置,接着创建了一个GregorianCalendar对象cal,接着使用cal.setTime()方法设置cal对象中的时间为当前时间,然后通过format格式化由cal.getTime()返回的时间进行输出,后面利用set方法设置cal的日期为当前星期的FRIDAY,此时cal中存储的时间就是这个星期五的该时刻,而后面利用format格式化输出,假如当前时间为2005年1月27日星期4的11点30分,那么最后将那句将会输出2005年1月28日星期5的11点30分。

java 日期(Date),日历(Calendar),格式化(DateFormat)使用方法

Java 语言的Calendar,GregorianCalendar (日历),Date(日期)和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。 我们将讨论下面的类...

黑马程序员---Java基础(System,Runtime,Date,Calendar,Math类)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 以下是java基础当中的有关类: /* System:类中的方法和属性都是静态的。 out:标...

Java基础(其他对象System、时间类(Date、Calendar)、Math)

System 一、概述 1、System是描述系统一些信息的类,类中的属性和方法都是静态的。不能被实例化,没有提供构造函数。 2、字段摘要        out:标准输出流。默认是控制台。   ...
  • zzamk
  • zzamk
  • 2015年03月22日 14:44
  • 491

java基础学习--System类、Runtime类、date和Calendar类、Math类

1、System类     System类是描述系统的一些信息的类,类中方法和属性都是静态的,没有提供构造函数,不能实例化。   1)两个重要字段:   out:标准输出流,默认是控制台。   in:...

黑马程序员—————JAVA语言j基础Date日期类和Calendar日类类详解。

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------                                              ...
  • LY2015
  • LY2015
  • 2015年06月16日 23:11
  • 418

黑马程序员——Java基础——集合工具类Collecions、Arrays、其他对象System类、Runtime类、Date类、Calendar类、Math类等操作

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -----...

Java基础第十天--Date类,DateFormat类,Calendar类,System类

1. Date类:表示一个特定的瞬间,精确到毫秒 -->很多方法都被Calendar类替代了  1)构造方法   Date() 默认当前日期   Date(long date)  epic:19...

黑马程序员:Java基础总结----类 Date 和类 Calendar

黑马程序员:Java基础总结 类 Date  和类 Calendar  ASP.Net+Android+IO开发、.Net培训、期待与您交流! java.u...

Java中的时间格式化和时间计算的方法 date calendar类详解~~~perfect

最近工程项目里需要频繁地计算时间,比如取得去年的今天,上个月的现在时间,前几天,后几天等等。一开始都是在需要的地方,写个方法,后来随着工程的开发,这样的时间计算和格式化需要的越来越多。干脆索性就直接写...

Java中Calendar类的简单使用方法,以及日期格式化的方法,字符串日期格式的验证

上一篇文章中用到了 Calendar 类,这里顺便说一下它的简单运用方法。先看一段代码: public static void main(String[] args) { Calendar ca...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java基础:Date和Calendar类的使用方法
举报原因:
原因补充:

(最多只允许输入30个字)