基于Java的动态时间显示
我正在尝试制作一个java应用程序来显示不同城市的实时时间。但我需要让它显示在控制台上。我的问题是我可以使用loop,但它会在时间变化时打印换行符。我想知道是否有一种方法,使显示实时不打印到新行一次又一次。谢谢你的帮助。问:我想知道是否有办法显示。。。没有换行 A:是的 问题是您似乎有一个控制台模式的应用程序,它使用System.out.println()(或等效程序)。解决办法是使用“其他东西”基于Java的动态时间显示,java,time,Java,Time,我正在尝试制作一个java应用程序来显示不同城市的实时时间。但我需要让它显示在控制台上。我的问题是我可以使用loop,但它会在时间变化时打印换行符。我想知道是否有一种方法,使显示实时不打印到新行一次又一次。谢谢你的帮助。问:我想知道是否有办法显示。。。没有换行 A:是的 问题是您似乎有一个控制台模式的应用程序,它使用System.out.println()(或等效程序)。解决办法是使用“其他东西” 理想情况下,您可以使用GUI,如 或者,如果您仍然需要控制台模式的应用程序,可以使用Java的
- 理想情况下,您可以使用GUI,如
- 或者,如果您仍然需要控制台模式的应用程序,可以使用Java的“curses”类型库。例如:
\r
,而不是\n
或\r\n
,将使光标返回到当前行的开头,因此下一个打印文本将打印在上一个文本上
我不知道这在Linux上是否有效
我知道它在某些IDE的控制台输出窗格中不起作用,例如,\r
的行为类似于Eclipse中的\n
除警告外,在Windows命令提示符中,以下命令将在单行上显示正在运行的时钟:
DateTimeFormatter formatter=DateTimeFormatter.of模式(“HH:mm:ss”);
对于(;){//永远循环
LocalTime=LocalTime.now();
系统输出打印(时间格式(格式化程序)+“\r”);
TimeUnit.NANOSECONDS.sleep(1_000_000_000-time.getNano());
}
注1:代码使用print()
,而不是println()
,因为ln
将打印我们不需要的\r\n
注2:它在现有文本上打印,不会清除该行,因此,如果一行打印
Hello World\r
,然后debye\r
,则结果是文本Goodbyeorld
。您需要用空格填充以清除任何现有文本。这当然不是固定宽度输出的问题,例如HH:mm:ss
回答得好。详细信息:for(;;)
是无限循环的C习惯用法,而Java习惯用法是While(true)
,它更清楚地表达了意图。我发现TimeUnit.NANOSECONDS.sleep(nanosToWait)
更优雅。@OleV.V。谁说while(true)
是永久循环的Java习语?我更喜欢(;)的,因为它读起来几乎像“永远”例如,展示了3种编写无限循环的方法,但没有显示出一种方法优于另一种方法。展示你拥有的(代码)、你得到的(输出)和你期望的是很酷的