Ein persönliches Memo, wenn Sie den Zeitteil der vom Kalender erfassten Datums- und Zeitdaten löschen möchten.
calenderObj.clear(Calendar.HOUR_OF_DAY);
calenderObj.clear(Calendar.HOUR);
calenderObj.clear(Calendar.MINUTE);
calenderObj.clear(Calendar.SECOND);
calenderObj.clear(Calendar.MILLISECOND);
Schreiben Sie ein Programm und überprüfen Sie es.
import java.util.Calendar;
public class CalendarClear {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
sysout(calendar);
calendar.clear(Calendar.HOUR);
calendar.clear(Calendar.MINUTE);
calendar.clear(Calendar.SECOND);
calendar.clear(Calendar.MILLISECOND);
sysout(calendar);
calendar.clear(Calendar.HOUR_OF_DAY);
sysout(calendar);
}
private static final void sysout(Calendar calc) {
System.out.println("/--------------------");
System.out.println("YEAR:" + calc.get(Calendar.YEAR));
System.out.println("MONTH:" + calc.get(Calendar.MONTH));
System.out.println("DATE:" + calc.get(Calendar.DATE));
System.out.println("HOUR_OF_DAY:" + calc.get(Calendar.HOUR_OF_DAY));
System.out.println("HOUR:" + calc.get(Calendar.HOUR));
System.out.println("MINUTE:" + calc.get(Calendar.MINUTE));
System.out.println("SECOND:" + calc.get(Calendar.SECOND));
System.out.println("MILLISECOND:" + calc.get(Calendar.MILLISECOND));
}
}
Das Ergebnis ist dies.
/--------------------
YEAR:2017
MONTH:4
DATE:22
HOUR_OF_DAY:17
HOUR:5
MINUTE:25
SECOND:35
MILLISECOND:527
/--------------------
YEAR:2017
MONTH:4
DATE:22
HOUR_OF_DAY:17
HOUR:5
MINUTE:0
SECOND:0
MILLISECOND:0
/--------------------
YEAR:2017
MONTH:4
DATE:22
HOUR_OF_DAY:17
HOUR:5
MINUTE:0
SECOND:0
MILLISECOND:0
Die Werte von HOUR_OF_DAY und HOUR werden nicht gelöscht. Dies ist die richtige Beschreibung.
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
sysout(calendar);
calendar.clear(Calendar.MINUTE);
calendar.clear(Calendar.SECOND);
calendar.clear(Calendar.MILLISECOND);
//Um den Zeitteil zu löschen, müssen Sie ihn in den Satz setzen.
calendar.set(Calendar.HOUR_OF_DAY, 0);
sysout(calendar);
calendar.clear();
sysout(calendar);
}
Es ist klar in JavaDoc angegeben. Calendar (Java Platform SE 7 )
Die Felder HOUR_OF_DAY, HOUR und AM_PM werden separat behandelt und es gelten Zeitauflösungsregeln. Durch Löschen eines der Felder> werden die "Stunden" in diesem Kalender nicht zurückgesetzt. Verwenden Sie set (Calendar.HOUR_OF_DAY, 0), um den Wert "Stunde" zurückzusetzen.
Verarbeitungsergebnis.
/--------------------
YEAR:2017
MONTH:4
DATE:22
HOUR_OF_DAY:17
HOUR:5
MINUTE:27
SECOND:12
MILLISECOND:718
/--------------------
YEAR:2017
MONTH:4
DATE:22
HOUR_OF_DAY:0
HOUR:0
MINUTE:0
SECOND:0
MILLISECOND:0
Bonus
calendar.clear();
Wenn Sie das tun
/--------------------
YEAR:1970
MONTH:0
DATE:1
HOUR_OF_DAY:0
HOUR:0
MINUTE:0
SECOND:0
MILLISECOND:0
Alle Elemente werden gelöscht.
Calendar (Java Platform SE 7 )
Setzen Sie alle Kalenderfeld- und Zeitwerte (in Millisekunden gegenüber dem ursprünglichen Zeitraum) für diesen Kalender auf undefiniert.
Recommended Posts