回答編集履歴
2
LocalDate
test
CHANGED
@@ -63,3 +63,49 @@
|
|
63
63
|
に至るわけです。
|
64
64
|
|
65
65
|
"2018-11-02"の場合も末尾の"-02"が無視されるため全く同じです。
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
### 解決法
|
70
|
+
|
71
|
+
入力にきちんと対応したFormatを用意しましょう。
|
72
|
+
|
73
|
+
```java
|
74
|
+
|
75
|
+
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
76
|
+
|
77
|
+
```
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
なお、Java8以降では新しい日付時刻に関するクラス群があります。
|
82
|
+
|
83
|
+
```java
|
84
|
+
|
85
|
+
import java.util.*;
|
86
|
+
|
87
|
+
import java.time.LocalDate;
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
public class Main {
|
92
|
+
|
93
|
+
public static void main(String[] args) throws Exception {
|
94
|
+
|
95
|
+
LocalDate date = LocalDate.parse("2018-11-01").minusDays(1);
|
96
|
+
|
97
|
+
System.out.println(date);
|
98
|
+
|
99
|
+
}
|
100
|
+
|
101
|
+
}
|
102
|
+
|
103
|
+
```
|
104
|
+
|
105
|
+
出力結果
|
106
|
+
|
107
|
+
```plain
|
108
|
+
|
109
|
+
2018-10-31
|
110
|
+
|
111
|
+
```
|
1
コメント追加
test
CHANGED
@@ -13,6 +13,8 @@
|
|
13
13
|
public static void main(String[] args) throws Exception {
|
14
14
|
|
15
15
|
SimpleDateFormat format1 = new SimpleDateFormat("yyyymmdd");
|
16
|
+
|
17
|
+
// 正しく"年/月/日 時:分:秒"として表示するためのフォーマッタ
|
16
18
|
|
17
19
|
SimpleDateFormat format2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
18
20
|
|