Java currentTimeMillis()转换为秒不起作用?

时间:2014-12-08 20:35:41

标签: java time milliseconds seconds

我尝试使用System.currentTimeMillis();

将毫秒转换为秒
System.out.println((int) System.currentTimeMillis() / 1000);

输出为730750并且增加1.如何从0开始秒?

**更新:现在我理解了这个问题并感谢您的回答。

4 个答案:

答案 0 :(得分:4)

System.currentTimeMillis()是从1970年1月1日开始的。它需要今天的时间并从1970年1月1日午夜减去它。这就是为什么这么多秒。

答案 1 :(得分:4)

来自System.currentTimeMillis()的Javadoc:

  

返回:   当前时间与1970年1月1日午夜时间之间的差异,以毫秒为单位。

要从零开始,您需要定义开始时间。然后,您可以打印在该开始时间之后经过的时间。

long startTime = System.currentTimeMillis();
...
System.out.println((System.currentTimeMillis() - startTime) / 1000);

答案 2 :(得分:3)

由于时间基于纪元1.1.1970,您需要将其基于当前时间。

long start = System.currentTimeMillis();
System.out.println((System.currentTimeMillis() - start) / 1000l);

答案 3 :(得分:2)

如果您想要经过时间,可以存储开始时间,然后再检查当前时间。 实施例

int startTimeSeconds = (int) System.currentTimeMillis() / 1000;
// do stuff
System.out.println("Time elapsed: ");
System.out.println(((int) System.currentTimeMillis() / 1000) - startTimeSeconds);