質問編集履歴

1

解決方法の追記

2017/06/21 05:57

投稿

olee46
olee46

スコア32

test CHANGED
File without changes
test CHANGED
@@ -145,3 +145,103 @@
145
145
  }
146
146
 
147
147
  ```
148
+
149
+
150
+
151
+ 追記: 解決方法
152
+
153
+ -
154
+
155
+ 回答でいただいたように、ミリ秒までformatすると、無事equalsでtrueが返されました
156
+
157
+ なお、Calendar.MONTHが0-11なことは考慮する必要がなく、あえてcal2.add...を入れる必要はありませんでした
158
+
159
+ 最終的なコードは以下のようになりました
160
+
161
+ ```java
162
+
163
+ package com.example.orisa.mycal1;
164
+
165
+
166
+
167
+ import java.text.ParseException;
168
+
169
+ import java.text.SimpleDateFormat;
170
+
171
+ import java.util.Calendar;
172
+
173
+ import android.support.v7.app.AppCompatActivity;
174
+
175
+ import android.os.Bundle;
176
+
177
+ import android.widget.TextView;
178
+
179
+
180
+
181
+ public class MainActivity extends AppCompatActivity {
182
+
183
+
184
+
185
+ //部品の変数
186
+
187
+ TextView tv;
188
+
189
+ @Override
190
+
191
+ protected void onCreate(Bundle savedInstanceState) {
192
+
193
+ super.onCreate(savedInstanceState);
194
+
195
+ setContentView(R.layout.activity_main);
196
+
197
+
198
+
199
+ //部品の取得
200
+
201
+ tv = (TextView)findViewById(R.id.tv);
202
+
203
+
204
+
205
+ Calendar cal1 = Calendar.getInstance();
206
+
207
+
208
+
209
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss:SSS");
210
+
211
+ String str1 = sdf.format(cal1.getTime());
212
+
213
+
214
+
215
+ Calendar cal2 = Calendar.getInstance();
216
+
217
+
218
+
219
+ try{
220
+
221
+ cal2.setTime(sdf.parse(str1));
222
+
223
+
224
+
225
+ if(cal1.equals(cal2)){
226
+
227
+ tv.setText("true");
228
+
229
+ } else {
230
+
231
+ tv.setText("false");
232
+
233
+ }
234
+
235
+
236
+
237
+ }catch (ParseException e){
238
+
239
+ tv.setText("exception");
240
+
241
+ }
242
+
243
+ }
244
+
245
+ }
246
+
247
+ ```