问题一:
对于Date Date=new Date(long time);若time取值为60*60*1000
则date的输出是多少?书上说是Thu Jan 01 01:00:00 GmT 1970,我把time取值为3600000不是比1970年1月1日0点差1000分钟么?怎么输出不一样啊?
问题二:
       SimpleDateFormat matter2=new SimpleDateFormat("北京时间yyyy-MM-dd HH:mm:ss(a)(EE)");
       long time=-1000L;
      Date date=new Date(time);
      System.out.println(time+"秒表示的日期时间是:"+matter2.format(date));
书上说输出应该是-1000秒表示的日期时间是:北京时间 1970-01-01 07:59:59,这个时间的分和秒是怎么算出来的?不是比1970年1月1日0点差1000秒吗?
其中的-1000L是什么意思?指的是长整型还是指的毫秒?若time为1000L呢?
很是迷惑,望高手解救

解决方案 »

  1.   

      问题一:time的单位是毫秒,所以60*60*1000=3600000毫秒,也就是一个小时,不是你说的1000分钟。
      问题二:-1000L是指的为长整型数。-1000L是指起始时间减去1秒,这里的起始时间是“Thu Jan 01 08:00:00 CST 1970”,注意到是"CST
    "(中国时间),而不是"GMT"(格林威治时间),Date date = new Date();得到的时间与jvm的设置有关。我们所说的“1970年1月1日0点”是针对格林威治时间而言的。