JAVA中的Date怎么用,和Calendar有什么不同,举个简单的例子就行,要说明清楚,Calendar我会用,但Date不会用,我主要是想要计算2个时间的差,在百度上很多人给的方法都要用到Date,所以想要把Date搞懂

解决方案 »

  1.   

    获取Date类中的年、月、日、时、分、秒以及星期可以使用Date类的getYear()、getMonth()、getDate()、
    getHours()、getMinutes()、getSeconds()、getDay()方法
    不过新版本JDK中已经不再推荐使用这些方法,改由Calender来进行处理
    int getDaysBetween(java.util.Calendar d1, java.util.Calendar d2)
      {
        Calendar begin = d1.after(d2)?d2:d1, end = d1.after(d2)?d1:d2;
        int days = end.get(java.util.Calendar.DAY_OF_YEAR) -
            begin.get(java.util.Calendar.DAY_OF_YEAR);
        int y2 = end.get(java.util.Calendar.YEAR);
        if (begin.get(java.util.Calendar.YEAR) != y2)
        {
          begin = (java.util.Calendar) begin.clone();
          do
          {
            days += begin.getActualMaximum(java.util.Calendar.DAY_OF_YEAR);
            begin.add(java.util.Calendar.YEAR, 1);
          }
          while (begin.get(java.util.Calendar.YEAR) != y2);
        }
        return days;
      }
      

  2.   

    Date是老版本的
    calendar是現在用的比較多的了
      

  3.   

    区别就是Date差不多大部分都deprecated了 取而代之的是Calendar
    功能类似的
      

  4.   

    Date本质就是一个long数值,从1970年到某个时间的毫秒数,我是这么理解的所有操作都可以用Date.getTime()得到毫秒数然后做运算。要格式化打印输出则使用SimpleDateFormat。(也可以用SimpleDateFormat来把某个格式的字符串格式化为Date)
    package com.test.my;import java.text.SimpleDateFormat;
    import java.util.Date;public class TestDate {    public static void main(String[] args) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            try {
                Date date1 = sdf.parse("2008-04-02 17:55:00");
                Date date2 = sdf.parse("2008-04-02 18:00:00");            long delay = date2.getTime() - date1.getTime();//间隔的毫秒数            System.out.println("Delay:" + delay / 1000 + "seconds");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    sdf.format(Date)可以用来输出"2008-04-01 18:00:00"格式的字符串
      

  5.   

    对的,习惯用calendar是好事来的。。
      

  6.   

    Date类里提供了时间的操作,使用构造函数Date()生成一个实例得到的是系统的时间,这个时间是以毫秒为单位,从 1970 年 1 月 1 日的 00:00:00.000 即格林威治标准时间,到生产这个Date时相差的毫秒数,Date是一个在JDK1.1中就出现了,所以其中的很多方法都是过时了,基本上没过时的就那么几个,在JDK文档中提到对Date的处理都是改成了DateFormat类,它在java.text包下,基本上是对Date进行格式的转换,具体的方法可以去查文档