求教大神为啥这里的getTime返回值不是毫秒数?

MeterO_ 2016-11-24 08:33:24
import java.util.Date;
import java.util.Calendar;
public class TestDateDemo{
public static void main(String args[ ]){
Date today = new Date();
System.out.println("Today's date is :"+today);
Calendar c = Calendar.getInstance();
c.set(1997,2,3);
Calendar d = c;
System.out.println("The initial time is :"+c.get(Calendar.YEAR)+"."+c.get(Calendar.MONTH)+"."+c.get(Calendar.DATE));
c.add(Calendar.DATE,1);
c.add(Calendar.HOUR_OF_DAY,1);
System.out.println("The new date is :"+c.get(Calendar.YEAR)+"."+c.get(Calendar.MONTH)+"."+c.get(Calendar.DATE));
long days = (c.getTime() - d.getTime())/(1000*60*60*24);
System.out.println("Two dates differ by "+days+"days");
}
}
...全文
626 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
萧乡月夜 2016-11-25
  • 打赏
  • 举报
回复
楼上正解。。
大隐藏于寺 2016-11-24
  • 打赏
  • 举报
回复
以下是Calendar类的getTime()方法的源代码,可以看到使用getTime()方法时,返回的是一个Date类对象,而你想用Calendar类对象获取毫秒值应该使用getTimeInMillis()方法.

    /**
     * Returns a <code>Date</code> object representing this
     * <code>Calendar</code>'s time value (millisecond offset from the <a
     * href="#Epoch">Epoch</a>").
     *
     * @return a <code>Date</code> representing the time value.
     * @see #setTime(Date)
     * @see #getTimeInMillis()
     */
    public final Date getTime() {
        return new Date(getTimeInMillis());
    }

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧