`

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

阅读更多

 

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类的使用方法

    Java中的Date和Calendar类是处理日期和时间的核心组件。Date类主要用于表示特定的瞬间,精确到毫秒。在早期版本的Java中,Date类的设计受到批评,因为它的API不直观且容易导致错误。为了解决这些问题,大部分日期和...

    Java 之 Date 和 Calendar 实例

    在Java编程语言中,`Date`和`Calendar`类是处理日期和时间的核心组件。这两个类在不同的Java版本中有着不同的使用方式和功能,对于理解Java时间处理机制至关重要。本篇将深入探讨`Date`和`Calendar`类的实例应用。 ...

    java中时间类Date和Calendar的使用

    Java中的时间类`Date`和`Calendar`是处理日期和时间的核心组件,它们在Java编程中扮演着重要的角色。在Java中,`Date`类主要用来表示特定的瞬间,精确到毫秒。而`Calendar`类则是一个抽象类,提供了比`Date`更灵活的...

    JAVA Calendar,Date类详解

    总的来说,`Calendar`和`Date`类是Java处理日期和时间的基础,虽然在Java 8后有了更好的替代选项,但理解这两个类的工作原理和用法对于任何Java开发者来说都是非常必要的。通过熟练掌握这些基本概念,你可以更有效地...

    JAVA的Date类与Calendar类.docx

    3. **设置和获取日期信息**:使用`set`方法设置日期和时间,如`calendar.set(Calendar.YEAR, 2009)`,然后通过`get`方法获取,如`calendar.get(Calendar.YEAR)`。 4. **日期和时间的转换**:与Date类交互,可以通过`...

    解析Date & Calendar类

    Java中的Date和Calendar类是处理日期和时间的核心工具。这两个类在Java编程中扮演着重要角色,特别是在处理日期计算、格式化以及与数据库交互时。 1. **java.util.Date** - **字符串转时间为Date对象**: 通过`...

    Java中Date和Calendar常用方法

    `java.util.Date`和`java.util.Calendar`是两个核心的类,用于表示和操作日期。尽管`Date`类提供了许多功能,但它的某些方法如`getYear()`、`getMonth()`等在后续版本中被废弃,取而代之的是使用`Calendar`类来进行...

    Java 之 Date 和 Calendar

    在Java编程语言中,`Date`和`Calendar`类是处理日期和时间的核心组件。这两个类在不同的Java版本中有着不同的用法和功能,对于理解并正确使用它们是Java开发者必备的知识点。 `Date`类在早期的Java版本中被广泛使用...

    JAVA new Date()或Calendar.getInstance().getTime()得到的时间不对

    在Java编程中,`new Date()` 和 `Calendar.getInstance().getTime()` 都是获取当前系统时间的方法,但有时可能会出现获取到的时间与预期不符的情况。这种问题通常与时区设置、系统时间、Java运行环境以及代码逻辑...

    Calendar和Date的转化

    为了更好地理解和使用这两个类之间的转换方法,本文将详细介绍如何将`Calendar`对象转换为`Date`对象,以及如何将`Date`对象转换为`Calendar`对象。 #### 1. Calendar转为Date `Calendar`类提供了获取当前时间的...

    第五章.常用类.java.API概述——Date类,Calendar类,SimpleDateFormat类,Big.pdf

    Date类是Java中用于处理时间和日期的基础类,它位于java.util包下。Date对象表示自1970年1月1日00:00:00 UTC(协调世界时)以来的毫秒数。创建Date对象默认表示当前时间。Date类的主要构造方法如下: ```java Date ...

    Java中Date类和Calender类的比较

    ### Java中Date类和Calendar类的比较 #### 一、Date类详解 **1. Date 类简介** 在Java中,`java.util.Date`类用于表示特定的瞬间,精确到毫秒。该类自JDK 1.0版本起提供,并在后续版本中得到了改进和支持。虽然`...

    Date、String、Calendar之间的转换_java编程_

    在Java编程中,Date、String和Calendar是三个重要的日期时间处理类,它们之间相互转换的技巧是开发者必备的知识。理解并熟练掌握这三者之间的转换,对于处理日常的日期时间问题至关重要。 首先,我们来看`Date`类。...

    Java Date的使用

    然而,在实际开发中,`java.util.Date`往往与`java.text.SimpleDateFormat`一起使用来格式化和解析日期。 ### SimpleDateFormat 类的使用 `SimpleDateFormat`是`DateFormat`的一个子类,用于格式化或解析日期。它...

    JAVA System、Math、Date、DateFormat、Calendar

    在这个"JAVA System、Math、Date、DateFormat、Calendar"的主题中,我们将深入探讨Java标准库中的几个核心类,它们在各种程序设计场景中扮演着至关重要的角色。 首先,`System`类是Java中最基础的类之一,位于`java...

    Date与Calendar详解

    `java.util.Calendar`是Java中用于操作日期和时间的抽象类,提供了比`Date`类更全面的日期和时间操作能力,包括时区支持、日历字段的访问以及日期的加减运算等。 ##### 使用Calendar `Calendar`类是抽象的,不能...

    Java中Date和Calendar日期处理

    关于java中date和Calendar日期处理小结,包含一些常用方法等

    Java_Date_日期时间整理

    可以使用 `java.util.Date` 类的 `getYear()`、`getMonth()`、`getDate()` 方法来获取当前年、月、日。 ```java <%@ page import="java.util.Date"%> <% Date myDate = new Date(); int thisYear = myDate.getYear...

    JAVA的Date类与Calendar类

    在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用。使用Date类的默认构造方法创建出的...

    JAVA LunarCalendar返回农历(阴历)日期 JAR包 有包括详细DOC文档

    使用前两种构建方法时,若文本内容不为数字,getErrorMessage会返回错误信息 方法摘要 java.lang.String getErrorMessage() 返回String类型的错误信息 java.lang.String getFullInfo() 返回String类型的详细...

Global site tag (gtag.js) - Google Analytics