Tag: 时钟

Java – 如何每秒更新一个面板

我正在尝试创建一个显示当前时间的Java GUI。 目前,我可以让它显示当前时间,但仅限于启动时。 然后它永远保持在那个时间。 原因是我无法弄清楚如何让它每秒自动加载到新的当前时间。 这是我迄今为止的相关代码: // Getting the current time… long epoch = System.currentTimeMillis() / 1000; String date = new java.text.SimpleDateFormat(“HH:mm:ss”).format(new java.util.Date(epoch * 1000)); // Creating the panel… JLabel lblThetime = new JLabel(date); sl_panel.putConstraint(SpringLayout.NORTH, lblThetime, 55, SpringLayout.SOUTH, lblIBeA); sl_panel.putConstraint(SpringLayout.WEST, lblThetime, 139, SpringLayout.WEST, panel); lblThetime.setFont(new Font(“Avenir Next”, Font.PLAIN, 40)); // Adding the time to the […]

使用原始类中的自定义Android AnalogClock设置时间

我想使用互联网上提供的Android开源项目的AnalogClock源代码制作自定义AnalogClock类。 我想让时钟设置我想要的时间,而不是当前时间。 我没有找到关于如何做到这一点的明确例子,所以这篇文章可能会有用。 将源代码复制到新文件后,我遇到了一些错误。 以下是AnalogClock的原始源代码: /* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless […]

如何测量Java中不受系统时钟变化影响的时间?

我想测量Java中的经过时间。 但是, System.currentTimeMillis()和(我相信) System.nanoTime()差异可以通过外部更改来更改,例如某人(或系统)更改系统时钟。 使用网络呼叫不是一种选择,因为它可能非常频繁且需要快速返回。 对此有一个共同的解决方案吗? 编辑 对不起,我应该详细说明原因。 它不是为了阻止恶意用户 – 它是客户端发起的空闲注销和日常客户端事件。

更改操作系统时间时睡眠()中的Java错误:任何解决方法?

惹恼我的错误与此票相同。 基本上,如果您将OS时钟更改为过去的日期,则更改时正在hibernate的所有线程都不会被唤醒。 我正在开发的应用程序意味着24/24运行,我们希望能够在不停止的情况下更改操作系统日期(例如,从夏季时间切换到冬季时间)。 目前发生的事情是,当我们将日期更改为过去时,应用程序的某些部分就会冻结。 我观察到在多台机器上,在Windows XP和Linux 2.6.37上,以及最近的JVM(1.6.0.22)。 我尝试了很多Java睡眠原语,但它们都有相同的行为: 了Thread.sleep(长) Thread.sleep(long,int) 的Object.wait(长) Object.wait(long,int) 的Thread.join(长) Thread.join(long,int) LockSupport.parkNanos(长) java.util.Timer中 javax.swing.Timer中 现在,我不想解决这个问题。 我认为我无法阻止睡眠线冻结。 但至少,我希望在检测到危险的系统时钟变化时警告用户。 我想出了一个监控线程来检测这些变化: Thread t = new Thread(new Runnable() { @Override public void run() { long ms1 = System.currentTimeMillis(); long ms2; while(true) { ms2 = ms1; ms1 = System.currentTimeMillis(); if (ms1 < ms2) { warnUserOfPotentialFreeze(); } Thread.yield(); […]

如何从午夜到秒获得时间

首先,这是一个我在Java 1类中坚持的简单问题。 这是一个静止的时间,我已经设置为8:49:12“今天”,我要弄清楚午夜过了多少秒,这到了午夜。 8小时49分12秒。 这是我的代码: hour = 8; minute = 59; second = 32; System.out.println(“The static time used for this program was: ” + hour + “:” + minute + “:” + second); 我的问题是,我不知道如何从午夜开始计算时间。 所以基本上输出需要是: Number of seconds since midnight: Number of seconds to midnight: 后面的空间是秒。 谢谢,请解释原因,以及如何选择如何解决这个问题。 我想学习:P

如果时钟发生变化,Timertask.scheduleAtFixedRate应该怎么做?

我们希望每1000秒运行一次任务(比方说)。 所以我们有 timer.scheduleAtFixedRate(task, delay, interval); 大多数情况下,这很好。 但是,这是一个嵌入式系统,用户可以更改实时时钟。 如果他们在我们设置定时器之后将其设置为过去的时间,则计时器似乎直到原始实时日期/时间才执行。 因此,如果他们将其设置为3天,则计时器不会执行3天:( 这是允许的行为,还是Java库中的缺陷? Oracle javadoc似乎没有提及有关依赖性的任何信息,也没有提及系统时钟的基础值。 如果允许的话,我们如何发现这个时钟变化并重新安排我们的计时器?