java如何输出时钟

Java 输出时钟的方法
使用 SimpleDateFormat 和 Timer 实现实时时钟
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Clock {
public static void main(String[] args) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
System.out.println(dateFormat.format(new Date()));
}
}, 0, 1000); // 每秒更新一次
}
}
使用 LocalTime 和 ScheduledExecutorService(Java 8+)
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class Clock {
public static void main(String[] args) {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.scheduleAtFixedRate(() -> {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
System.out.println(LocalTime.now().format(formatter));
}, 0, 1, TimeUnit.SECONDS);
}
}
控制台模拟时钟界面(ASCII 风格)
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class AsciiClock {
public static void main(String[] args) throws InterruptedException {
while (true) {
LocalTime time = LocalTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
String formattedTime = time.format(formatter);
System.out.println(" ╔═════════╗");
System.out.println(" ║ " + formattedTime + " ║");
System.out.println(" ╚═════════╝");
Thread.sleep(1000);
System.out.print("\033[H\033[2J"); // 清屏(适用于支持ANSI的终端)
}
}
}
注意事项
- 前两种方法会每秒输出一次时间,适合日志或简单显示。
- 第三种方法模拟了简易图形界面,但需要终端支持ANSI转义码。
- 若需要更复杂的图形界面,建议使用JavaFX或Swing框架。
- 所有示例中时间格式均可调整,如改为
"HH:mm:ss a"可包含AM/PM。
