控制台时间刷新
Time refresh in the console
我试图对日期和时间进行编程,使其与当前日期相对应,但在控制台中找不到解决方案,只显示最后一个 运行 的日期。这是我的代码:
public class DateDemo {
public static void main(String args[]) {
Date dNow = new Date();
SimpleDateFormat ft = new SimpleDateFormat("E dd.MM.yyyy 'um' HH:mm:ss ");
System.out.println("Datum: " + ft.format(dNow));
}
}
控制台的行为不同,所以恐怕没有任何通用的解决方案。
我试过这个:
DateTimeFormatter formatter
= DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG)
.withLocale(Locale.GERMAN);
ZoneId timeZoneId = ZoneId.of("Europe/Zurich");
int totalIterations = Math.toIntExact(TimeUnit.HOURS.toSeconds(2));
for (int sec = 0; sec < totalIterations; sec++) {
System.out.print(ZonedDateTime.now(timeZoneId).format(formatter) + '\r');
TimeUnit.SECONDS.sleep(1);
}
当我在 Eclipse 中 运行 它时,它会在 Eclipse 控制台中打印一行,如下所示:
16. November 2019 07:37:32 MEZ
16. November 2019 07:37:33 MEZ
16. November 2019 07:37:34 MEZ
16. November 2019 07:37:35 MEZ
但是当我从我的 Mac 终端 window 运行 它时,它保持在同一行并不断覆盖它:
\r
字符是马车return。理论上它应该回到同一行的开头。也许它不在 Eclipse 中的原因是他们认为我想使用控制台 window 进行调试,因此如果我能看到所有输出会更好,所以他们不想覆盖任何。只是猜测。
有更优雅、更准确的方法让事情每秒都发生。查看 ScheduledExecutorService.scheduleAtFixedRate
.
PS 两个屏幕截图的格式略有不同,在终端中 window um
(“at”) 包含在日期和时间之间。差异来自不同的 Java 版本。在 Eclipse 中我使用 Java 8,在终端中使用 window Java 11。故事在这个问题中:.
我试图对日期和时间进行编程,使其与当前日期相对应,但在控制台中找不到解决方案,只显示最后一个 运行 的日期。这是我的代码:
public class DateDemo {
public static void main(String args[]) {
Date dNow = new Date();
SimpleDateFormat ft = new SimpleDateFormat("E dd.MM.yyyy 'um' HH:mm:ss ");
System.out.println("Datum: " + ft.format(dNow));
}
}
控制台的行为不同,所以恐怕没有任何通用的解决方案。
我试过这个:
DateTimeFormatter formatter
= DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG)
.withLocale(Locale.GERMAN);
ZoneId timeZoneId = ZoneId.of("Europe/Zurich");
int totalIterations = Math.toIntExact(TimeUnit.HOURS.toSeconds(2));
for (int sec = 0; sec < totalIterations; sec++) {
System.out.print(ZonedDateTime.now(timeZoneId).format(formatter) + '\r');
TimeUnit.SECONDS.sleep(1);
}
当我在 Eclipse 中 运行 它时,它会在 Eclipse 控制台中打印一行,如下所示:
16. November 2019 07:37:32 MEZ 16. November 2019 07:37:33 MEZ 16. November 2019 07:37:34 MEZ 16. November 2019 07:37:35 MEZ
但是当我从我的 Mac 终端 window 运行 它时,它保持在同一行并不断覆盖它:
\r
字符是马车return。理论上它应该回到同一行的开头。也许它不在 Eclipse 中的原因是他们认为我想使用控制台 window 进行调试,因此如果我能看到所有输出会更好,所以他们不想覆盖任何。只是猜测。
有更优雅、更准确的方法让事情每秒都发生。查看 ScheduledExecutorService.scheduleAtFixedRate
.
PS 两个屏幕截图的格式略有不同,在终端中 window um
(“at”) 包含在日期和时间之间。差异来自不同的 Java 版本。在 Eclipse 中我使用 Java 8,在终端中使用 window Java 11。故事在这个问题中: