`

浅谈Date和Calendar类

 
阅读更多

     在Java平台首次发布时,唯一支持日历计算类的就是Date类;在Java1.1版中,Calendar类被添加到Java平台中,以矫正Date的缺点,由此大部分的Date方法就被弃用了。可惜的是,这样做很糟糕。

      比如:

               1:Date将一月份表示为0,而Calendar延续了这个错误。因此下面的代码会输出2000:

 

                Calendar calendar=Calendar.getInstance();
		calendar.set(1999,12,31);
		System.out.println(calendar.get(Calendar.YEAR)+"   ");

 因为11表示12月份,而12表示2000年的1月份。所以,这里是很容易出错的。修订的办法:

 

calendar.set(1999,Calendar.DECEMBER,31)

               2:Date.getDay返回的是星期日期而不是月份日期,比如下面的代码将输出5(表示星期五)

               Calendar calendar=Calendar.getInstance();
		calendar.set(1999,Calendar.DECEMBER,31);
		Date date=(Date) calendar.getTime();
		System.out.println(date.getDay());

 Date.getDay()是把周日当0开始算的,周一为1,以此类推。

Calendar.get(Calendar.get(Calendar.DAY_OF_WEEK))是把周日当1开始算的。周一为2,以此类推。

这又是一点容易引起混淆的地方。

 

       在使用Calendar和Date的时候经常会遇到问题,所以要加倍小心。最好还是将Date类放弃吧。

 

       下面粘贴一个Date和Calendar相互转换的例子:

Calendar和Date()转化

(1) Calendar转化Date()
Calendar cal=Calendar.getInstance();
Date() date=cal.getTime();

(2) Date转化Calendar
Date date=new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(date);

 

分享到:
评论

相关推荐

    解析Date & Calendar类

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

    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`更灵活的...

    Calendar和Date的转化

    ### Calendar和Date的转化 在Java编程语言中,`Calendar`和`Date`是处理日期和时间的重要类。为了更好地理解和使用这两个类之间的转换方法,本文将详细介绍如何将`Calendar`对象转换为`Date`对象,以及如何将`Date`...

    JAVA Calendar,Date类详解

    在Java编程语言中,`Calendar`和`Date`类是处理日期和时间的核心组件。这两个类在处理日期、时间计算以及格式化等任务时扮演着关键角色。理解并熟练运用它们,对于提升Java开发能力至关重要。 `Date`类是Java早期...

    Java 之 Date 和 Calendar

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

    Calendar和Date

    在Java编程语言中,`Calendar`和`Date`类是用于处理日期和时间的核心类。它们在处理日期和时间操作时扮演着重要角色。这里我们将深入探讨这两个类以及它们之间的对比,同时展示如何计算上月某一天的日期以及获取指定...

    JAVA的Date类与Calendar类.docx

    Java中的Date类和Calendar类是处理时间和日期的重要工具。在早期的JDK版本中,Date类是主要的日期时间表示类,但在JDK1.1之后,为了更好地支持国际化和增强功能,推荐使用Calendar类。 Date类: 1. **表示当前时间*...

    第二十五天,对包装类及Date类和Calendar类的学习

    第二十五天,对包装类及Date类和Calendar类的学习

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

    【Date类】 Date类是Java中用于处理时间和日期的...Date类是最基础的,而Calendar类提供了更丰富的操作,SimpleDateFormat则负责日期和时间的格式化和解析。在实际开发中,根据需求选择合适的类来处理日期和时间问题。

    Java中Date和Calendar日期处理

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

    Java中Date和Calendar常用方法

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

    日期操作类(Date、Calendar)笔记

    031105_【第11章:Java常用类库】_日期操作类(Date、Calendar)笔记

    Java中Date类和Calender类的比较

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

    JAVA的Date类与Calendar类

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

    JAVA System、Math、Date、DateFormat、Calendar

    最后,`Calendar`类是`Date`的一个增强版本,提供了更灵活的日期和时间操作。它支持日历字段,如年、月、日、小时、分钟等,并且可以进行加减操作。`Calendar.getInstance()`可以获取当前的Calendar实例,`calendar....

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

    另一方面,`Calendar` 类是比 `Date` 更为复杂的日期和时间处理工具,提供了更多的功能,如日历字段操作、时区转换等。通过 `Calendar.getInstance()` 获取到的是一个 `Calendar` 实例,代表当前系统时间。调用 `...

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

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

Global site tag (gtag.js) - Google Analytics