[JAVA] Ein Memo, wenn Sie den Zeitteil des Kalenders löschen möchten

Was ist das?

Ein persönliches Memo, wenn Sie den Zeitteil der vom Kalender erfassten Datums- und Zeitdaten löschen möchten.

Zunächst ein Beispiel, das bei Google herauskommt

calenderObj.clear(Calendar.HOUR_OF_DAY);
calenderObj.clear(Calendar.HOUR);
calenderObj.clear(Calendar.MINUTE);
calenderObj.clear(Calendar.SECOND);
calenderObj.clear(Calendar.MILLISECOND);

Was ist los?

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

Ein Memo, wenn Sie den Zeitteil des Kalenders löschen möchten
[Swift] Wenn Sie wissen möchten, ob die Anzahl der Zeichen in String mit einer bestimmten Anzahl übereinstimmt ...
Stellen Sie die Zeit von LocalDateTime auf eine bestimmte Zeit ein
Wenn Sie die Methode außerhalb verwenden möchten
Hinweise zur Überprüfung bei der Verwendung von Lombok
[Rails] After-Option nützlich, wenn Sie die Reihenfolge der DB-Spalten ändern möchten
Vorläufiges Memo beim Erstellen der CentOS 6-Serie mit VirtualBox
[Java-Tool] Ein nützliches Tool, wenn Sie das IPMSG-Protokoll von PC-A regelmäßig an den angegebenen PC senden möchten.
Wenn Sie den Wortlaut ändern möchten, der angezeigt werden soll, wenn Sie ein Auswahlfeld aus enum erstellen
Ein Memo des Programms, mit dem Sie feststellen können, dass die Wahrscheinlichkeit eines Würfelwurfs etwa 1/6 beträgt
Eine Sammlung von Mustern, die Sie kennen möchten, um den Code nicht zu komplizieren
[Controller] Ich möchte den numerischen Wert einer bestimmten Spalte aus der Datenbank abrufen (mein Memo).
Vergleich von Versionszeichenfolgen, wenn Sie die Verarbeitung zwischen zwei Versionen verzweigen möchten (Java-Implementierung)
Ein Memorandum, wenn Sie die von Jena & SPARQL erfassten Daten für jede Variable anzeigen möchten.
[Past POST] Ich werde einen Teil des Antwortprotokolls veröffentlichen, als ich Mentor von TECH :: CAMP war
Tipps, wenn Sie beim Ersetzen einer Zeichenfolge viele Zeilenumbrüche und Tabulatoren einfügen möchten
Wenn Rails eine Sitzung für einen bestimmten Controller deaktivieren soll
Ich möchte die JSP des offenen Portlets bei der Entwicklung von Liferay kennen
Zusammenfassung der Mittel, wenn Sie mit HTTP unter Android kommunizieren möchten
Ich möchte, dass Sie Enum # name () für den Schlüssel von SharedPreference verwenden
Wenn Sie mit dem Befehl "Rails Generate Migration" eine Spalte vom Typ "String" mit begrenzter Länge hinzufügen möchten
[RSpec] Wenn Sie die Instanzvariable des Controllers im Test verwenden möchten [Zuweisungen wird nicht empfohlen]
Ein Beispiel für kleine Arbeiten, bei denen Sie den Definitionswert nach der Umgebung aufteilen möchten, sich dessen jedoch nicht bewusst sein möchten
Wenn Sie die Testabdeckung privater Methoden in JUnit erfüllen möchten
So erstellen Sie eine Route direkt aus der URL, die Sie + α angeben möchten
Machen Sie einen Rand links vom TextField
Was ich versucht habe, als ich alle Felder einer Bohne bekommen wollte
Wenn Sie InputStream in JDBI3 binden möchten
Ich möchte den Inhalt der Absicht var_dump
Ein Hinweis, wenn Sie Tupel in Java möchten
Ich möchte, dass Sie Scala vorerst als besseres Java verwenden
Ich habe es geschafft, ein Leerzeichen zu bekommen, als ich den Inhalt von Beans in den Textbereich gebracht habe
Ich möchte rekursiv die Oberklasse und die Schnittstelle einer bestimmten Klasse erhalten
[Ruby] Wenn Sie mehrere Zeichen ersetzen möchten
Der Weg zum Erstellen eines Webdienstes (Teil 1)
[JavaScript] Ich möchte die Verarbeitung einschränken, indem ich Eingabeelemente überprüfe, wenn die angegebene Zeit zum Zeitpunkt des Fokusausgangs abgelaufen ist.
Ich möchte, dass Sie die Geschichte erzählen, dass der Fehler behoben wurde, als Sie das Ladegerät in die Ecke Ihres Kopfes gestochen haben
So löschen Sie den dem Benutzer zugeordneten Tweet, wenn Sie ihn gleichzeitig löschen
[Lösung] Ein Memo, das mir schwer fiel, weil sich das Format der Sinatra-Validierung geändert hat.
[Rails] Ich möchte das Linkziel von link_to auf einer separaten Registerkarte anzeigen
Wenn der Schwebeflug von Eclipse schwer zu sehen ist
Ich möchte eine Methode einer anderen Klasse aufrufen
Ich möchte die Antwort der Janken-App wissen
Ich möchte den Namen des Posters des Kommentars anzeigen
[Java] Beim Schreiben der Quelle ... Memorandum ①
Lernnotiz beim ersten Lernen von Java (persönliches Lernnotiz)
Wenn Sie Annotation in Java 8 dynamisch ersetzen möchten