【发布时间】:2012-10-05 08:25:52
【问题描述】:
我有一个类,它使用 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.");
【问题讨论】:
-
你是如何从服务器获取价值的?
-
日期是您从
System.currentTimeMillis();获得的值的包装器,您可以尝试使用它吗? -
发布您用来显示价值的确切代码。
-
试试
String longTime = String.valueOf(System.currentTimeMillis()); -
如果您肯定用我发布的代码替换会改变服务器上的行为,那么我能看到的唯一选择是您在服务器上使用了一个损坏的
java.util.Date实现。这归结为服务器端 JRE,或者理论上但不太可能是类路径上的另一个 JAR(我应该说是恶意的吗?)定义了一个损坏的java.util.Date。
标签: java unix-timestamp java.util.date gettime