Java显示当前时间

标签 java date time timer

我有一个代码可以显示我运行应用程序时的当前日期和时间

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));

现在它显示:2012/12/11 00:36:53 当我运行它时。

但我希望它在运行期间计算时间。

因此,现在举例来说,当我在 00:37:53 运行它时,它这次显示,但我希望 00:37:53 在开始时运行,而我在 00:40:55 停止运行。我希望它显示 00:37:53、00:37:54、00:37:55 等等。

现在我该怎么做呢?

最佳答案

使用计时器如何,例如 javax.swing.Timer ? (导入不要搞错,Timer类比较多。)

public static void main(String... args) throws InterruptedException {
    final DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    int interval = 1000; // 1000 ms

    new Timer(interval, new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            Calendar now = Calendar.getInstance();
            System.out.println(dateFormat.format(now.getTime()));
        }
    }).start();

    Thread.currentThread().join();
}

这将简单地每秒执行一次 ActionListener 的主体,打印当前时间。

最后一行的 Thread.join 调用并不是普遍必需的,只是为了让这段示例代码运行直到进程被手动停止。否则,它会立即停止。

在实际的应用程序中,如果是 Swing 应用程序,则计时器应该自己处理线程,因此您不必担心。


编辑

将上面的示例集成到您的应用程序中非常简单,只需将其添加到 initGUI 方法中,而不是将当前时间打印到 System.out set,更改给定标签的文本:

public void initGUI() {
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);        
    setPreferredSize(new Dimension(800, 600));
    setLayout(null);

    Calendar now = Calendar.getInstance();
    tijd = new JLabel(dateFormat.format(now.getTime()));
    tijd.setBounds(100, 100, 125, 125);
    window.add(tijd);

    new Timer(1000, new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            Calendar now = Calendar.getInstance();
            tijd.setText(dateFormat.format(now.getTime()));
        }
    }).start();

    pack();
}

关于Java显示当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811224/

相关文章:

java - 无法解析类型 java.lang.object - Eclipse buildpath 不工作

java - jsp中如何遍历对象列表

ios - 在解析中访问日期列 - Swift IoS 开发

带有冒号分隔符的时区的Java SimpleDateFormat?

python - 将字符串转换为日期 [含年份和季度]

java - 与 Java 和 PHP 兼容的密码散列

java - Oracle:OALL8 处于不一致状态

python - 使用 Python pandas 进行数据操作

Javascript 整数到时间字符串

Python时间问候程序