回答編集履歴

1

取得した日時との差分でやるバージョンを追記

2020/09/01 13:50

投稿

root_jp
root_jp

スコア4666

test CHANGED
@@ -35,3 +35,59 @@
35
35
  }
36
36
 
37
37
  ```
38
+
39
+
40
+
41
+ 元々の質問は、重複する原因と対策だと思いますが、
42
+
43
+ 載せられているコードを実行しても、1秒毎に表示されることもなく、
44
+
45
+ 全く動いてないように見えたので、質問者さんのコードを参考にしたバージョンも書いてみました。
46
+
47
+ ```Java
48
+
49
+ import java.time.LocalDateTime;
50
+
51
+ import java.time.format.DateTimeFormatter;
52
+
53
+ import java.time.temporal.ChronoUnit;
54
+
55
+
56
+
57
+ public class Sample {
58
+
59
+ private static final int LIMIT = 20;
60
+
61
+ public static void main(String[] args) throws Exception {
62
+
63
+ int counter = 0;
64
+
65
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd hh:mm:ss");
66
+
67
+ LocalDateTime previous = LocalDateTime.now();
68
+
69
+ while (true) {
70
+
71
+ LocalDateTime now = LocalDateTime.now();
72
+
73
+ if (ChronoUnit.MILLIS.between(previous, now) >= 1000) {
74
+
75
+ previous = now;
76
+
77
+ System.out.println(now.format(formatter));
78
+
79
+ if (++counter == LIMIT) {
80
+
81
+ break;
82
+
83
+ }
84
+
85
+ }
86
+
87
+ }
88
+
89
+ }
90
+
91
+ }
92
+
93
+ ```