【问题标题】:Java Thread to find System Time查找系统时间的 Java 线程
【发布时间】:2023-04-08 06:59:01
【问题描述】:

我使用波纹管线程来查找系统时间。但是这里有一个问题。它总是显示 12:11:-- PM 和秒运行但 60 秒后 12:11 分钟没有变化再次秒运行..我的电脑原始时间是 12:24 PM..这里有什么问题。对不起我的坏英语..

public void statTime(){
    new Thread(new Runnable() {

        @Override
        public void run() {
            try {
                while (true) {                            
                    java.util.Date d = new java.util.Date();
                    SimpleDateFormat sdf = new SimpleDateFormat("hh:MM:ss a");
                    jLabel1.setText(sdf.format(d));
                    Thread.sleep(1000);

                }

            } catch (Exception e) {
            }
        }
    }).start();
}

【问题讨论】:

  • 我在构造函数(initcomponent)中运行这个方法
  • 尝试使用 mm 代替 MM
  • jLabel1.setText() 应该在 AWT 中调用 - 使用 SwingUtilities.invokeLater()

标签: java multithreading netbeans time


【解决方案1】:

MM 是一年中的一个月 - 在你的格式化字符串中尝试mm

【讨论】:

    【解决方案2】:

    使用以下代码更好地使用系统时间

    SimpleDateFormat sdf = new SimpleDateFormat("hh:MM:ss a");
    jLabel1.setText(sdf.format(new Date(System.currentTimeMillis())));
    

    【讨论】:

    • 这也可以,但是我的代码和这个有什么不同......它比我的代码容易运行吗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多