2016-05-04 7 views
0

Ich versuche, die HOUR_OF_DAY aus dem Kalender in Java zu löschen. Für jedes andere Feld wird der Wert gelöscht. Nur für HOUR_OF_DAY ist es nicht.Java-Kalender löscht die Stunde des Tages

Calendar c = Calendar.getInstance(); 
c.clear(Calendar.MINUTE); 
c.clear(Calendar.HOUR_OF_DAY); 
System.out.println(c.getTime()); 

druckt Wed May 04 12:00:31 IST 2016

bei 2 PM druckt Wed May 04 14:00:31 IST 2016

+0

Ich habe nicht das Gefühl, die Frage zu duplizieren, da dort nicht das API doc angegeben wird (der Grund dafür, warum es nicht funktioniert) @piyushjaiswal –

+0

Für einen reinen Date-Wert, ohne Tageszeit, benutze ['java. time.LocalDate'] (https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html). –

Antwort

4

Von API of clear:

Die HOUR_OF_DAY, HOUR und AM_PM Bereichen unabhängig und die die Auflösung der Regel für die Zeit behandelt werden Tag wird angewendet. Wenn Sie eines der Felder löschen, wird der Stundenwert dieses Kalenders nicht zurückgesetzt. Verwenden Sie set(Calendar.HOUR_OF_DAY, 0), um den Stundenwert zurückzusetzen.

So

c.set(Calendar.HOUR_OF_DAY, 0); 

sollte bekommen, was Sie wollen.

+0

clear() sollte eine RuntimeException auslösen, wenn die API falsch verwendet wird, nein? Das ist eine echte Herausforderung. – JohnyTex

Verwandte Themen