java - Date.getTime() 给出时间 2000 年 1 月 1 日

标签 java windows windows-7

我在几台笔记本电脑上观察到这种不寻常的行为。我在我们开发的应用程序中运行时遇到了一些问题。在调试时我们发现 new Date.getTime() 指向旧的 date 。之后我们尝试在这些机器上运行一个小程序。以下是我们使用的代码。

import java.util.Date;
import java.util.concurrent.ConcurrentHashMap;

public class Test {

    public static void main(String... args)  {
        System.out.println(new Date().getTime());
        ConcurrentHashMap chm = new ConcurrentHashMap();

        for (int i = 0; i < 100000; i++) {
            chm.put(i, new Date().getTime());

                if (Long.parseLong(String.valueOf(chm.get(i))) < 1332334082344l) {
                    System.out
                            .println(Long.parseLong(String.valueOf(chm.get(i))));
                }



        }

        System.out.println("dONE "+chm.size()+" "+chm.get(1000));
    }
}

如果有少数情况,输出类似于“946684800617”。当我们看到日期时,它指向 2000 年 1 月 1 日和一些毫秒。并非所有笔记本电脑都会出现这种情况。

想知道为什么会发生这种情况,以便我们能够解决它。

PS:我们使用的是 Windows 7 (pro),Lenovo ThinkPad L420

最佳答案

这并不能回答您的问题,但您的代码非常复杂,可能会产生意想不到的后果。您可以尝试运行它来执行相同的操作吗?

public class Test {
    public static void main(String... args) {
        int length = 100000;
        System.out.println(System.currentTimeMillis());
        long[] times = new long[length];
        for (int i = 0; i < length; i++) {
            times[i] = System.currentTimeMillis();
            if (times[i] < 1332334082344L)
                System.out.println(times[i]);
        }
        System.out.println("Done " + times.length + " " + times[1000]);
    }
}

关于java - Date.getTime() 给出时间 2000 年 1 月 1 日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9988782/

相关文章:

java - 使用 apache commons 获取 CSV 文件头

java - Else 语句不在 SQL 数据库的 while 循环内执行

windows - Windows 10 上的默认邮件应用程序是使用 HTML5、CSS 和 javascript 完成的吗?

visual-studio-2005 - 在 Windows 7 X64 上安装 Visual Studio 2005

python - Python 中的 Windows 7 MARGINS 结构

c++ - Windows 上的 Qt::AA_SynthesizeMouseForUnhandledTouchEvents

初始化时的 Java int 问题

java - WifiP2p:我的 Activity 不使用BroadcastReceiver(我认为..)

c++ - 如何创建 QPixmap 的半透明拷贝?

c++ - 等待 main() 返回?