回答編集履歴

2

LocalDate

2018/11/15 13:00

投稿

swordone
swordone

スコア20675

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

コメント追加

2018/11/15 13:00

投稿

swordone
swordone

スコア20675

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