Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于Java的动态时间显示_Java_Time - Fatal编程技术网

基于Java的动态时间显示

基于Java的动态时间显示,java,time,Java,Time,我正在尝试制作一个java应用程序来显示不同城市的实时时间。但我需要让它显示在控制台上。我的问题是我可以使用loop,但它会在时间变化时打印换行符。我想知道是否有一种方法,使显示实时不打印到新行一次又一次。谢谢你的帮助。问:我想知道是否有办法显示。。。没有换行 A:是的 问题是您似乎有一个控制台模式的应用程序,它使用System.out.println()(或等效程序)。解决办法是使用“其他东西” 理想情况下,您可以使用GUI,如 或者,如果您仍然需要控制台模式的应用程序,可以使用Java的

我正在尝试制作一个java应用程序来显示不同城市的实时时间。但我需要让它显示在控制台上。我的问题是我可以使用loop,但它会在时间变化时打印换行符。我想知道是否有一种方法,使显示实时不打印到新行一次又一次。谢谢你的帮助。

问:我想知道是否有办法显示。。。没有换行

A:是的

问题是您似乎有一个控制台模式的应用程序,它使用System.out.println()(或等效程序)。解决办法是使用“其他东西”

  • 理想情况下,您可以使用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种编写无限循环的方法,但没有显示出一种方法优于另一种方法。展示你拥有的(代码)、你得到的(输出)和你期望的是很酷的