日期:2014-05-20  浏览次数:20619 次

java的getTime() 问题

Date now = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

long now_long = now.getTime();// 13
System.out.println("现在时间是:" + df.format(now));
long now_long_1000 = now_long/1000;

System.out.println("现在时间的毫秒          :" + now_long);
System.out.println("现在时间的毫秒/1000:" + now_long_1000);


System.out.println("由13位long型转换回去的:" + df.format(new Date(now_long)));
System.out.println("由10位long型转换回去的:" + df.format(new Date(now_long_1000 * 1000)));

// 结果
现在时间是:2013-04-11 10:49:03
现在时间的毫秒          :1365648543084
现在时间的毫秒/1000:     1365648543
由13位long型转换回去的:2013-04-11 10:49:03
由10位long型转换回去的:2013-04-11 10:49:03

我想问的是 我除以1000 除掉了084, 最后转换回来我后三位补的是000, 为什么得到最后的时间还是一样的, 请指教
Java

------解决方案--------------------
long now_long_1000 = now_long/1000;
long ms = now_long - now_long_1000;


df.format(new Date(now_long_1000 * 1000 + ms))
------解决方案--------------------
你只是把毫秒去掉了
最终显示的时间里不包含毫秒,所以是一样的
------解决方案--------------------
楼上正解。

毫秒省去了。84毫秒才。
------解决方案--------------------
首先lz要理解
new SimpleDateFormat.format(new Date())的真正算法:从1970-1-1 08:00 开始算起,计算到指定日期时过去的ms数,相加得到当前时间。
所以new SimpleDateFormat.format(new Date(1000))得到1970-01-01 08:00:01,
lz好眼力···