new Date().getTime()不返回以毫秒为单位的时间戳

Chi*_*may 9 java gettime unix-timestamp java.util.date

我有一个类,它使用java.util.Date类来创建日期对象并使用getTime()获取当前毫秒.

我在Java文档中看到了getTime()返回毫秒,同样的情况在我的机器上.

我有另外一台服务器,当我在服务器上部署我的应用程序时,同样getTime()以秒为单位返回时间戳.

例如

  • 服务器上的值:1350054625
  • 本地价值:1350054625000

我想知道这是怎么可能的,我在本地尝试了相同的代码,我再次得到时间戳,以毫秒为单位.

以下是代码的一部分......

String longTime = new Long((new Date().getTime())).toString();
if(log.isDebugEnabled())log.debug("LAST_FEED_TIME will be " + longTime + " stored.");
Run Code Online (Sandbox Code Playgroud)

Mun*_*esh 9

'new Date()'反过来使用System.currentTimeMillis()

System.currentTimeMillis的

以毫秒为单位返回当前时间.请注意,虽然返回值的时间单位是毫秒,但值的粒度取决于底层操作系统,并且可能更大.例如,许多操作系统以几十毫秒为单位测量时间.

有关"计算机时间"和协调世界时(UTC)之间可能出现的轻微差异的讨论,请参阅类Date的说明.

来源:http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/System.html#currentTimeMillis()

  • 这并不能解释为什么相同的代码在不同的机器上运行时会返回不同的结果,是吗? (5认同)
  • 我已经将代码更改为System.currentTimeMillis()并且我的问题已经解决,我仍在寻找这种情况的解决方案,或者为什么api以这种方式表现的确切原因... (2认同)