gpt4 book ai didi

Java显示当前时间

转载 作者:搜寻专家 更新时间:2023-10-30 21:30:01 26 4
gpt4 key购买 nike

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

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com