Während der Entwicklung von Java war ich unweigerlich mit dem Datumstyp verwickelt. Ich wollte die von dem Projekt häufig verwendeten Datumsoperationen zusammenfassen. JDK Version 1.7. Wenn es Ihnen helfen kann, ein paar Minuten Zeit zu sparen, um aufzustehen und sich zu bewegen und eine Tasse Kaffee zuzubereiten, wäre es großartig. Hehe. Natürlich biete ich nur praktikable Lösungen und kann nicht garantiert Best Practices sind, und Diskussionen sind willkommen.
1. Datumswert
In der Zeit des alten JDK gab es viele Codes, die die Klasse von Java.util.date in Bezug auf Datumwerte verwendeten. Da die Datumsklasse jedoch nicht bequem ist, um die Internationalisierung zu erreichen, wird empfohlen, die Klasse von Java.util.Calendar für die Zeit- und Datumsverarbeitung ab JDK1.1 zu verwenden. Ich werde die Operationen der Datumsklasse hier nicht vorstellen. Gehen wir direkt zum Thema und wie Sie die Kalenderklasse verwenden, um das aktuelle Datum und die aktuelle Uhrzeit zu erhalten.
Da die Konstruktor -Methode des Kalenders durch geschützte geändert wird, erstellen wir ein Kalenderobjekt über die in der API bereitgestellte GetInstance -Methode.
// Es gibt mehrere überladene Methoden zum Erstellen von Kalenderobjekten Kalender Now = Calendar.getInstance (); // Standard // Geben Sie die Zeitzone und den Bereich an, oder Sie können nur einen der Parameter Kalender jetzt eingeben
Anschließend können wir die aktuellen Zeitparameter der aktuellen Zeit über das Objekt erhalten.
int Year = Now.get (Kalender.YEAR); //, aktuelles Jahr int monat = now.get (Kalender.month) +; //, aktueller Monat, bitte int Day = now.get (calendar.date); //, aktuelles Tagesdatum = now.getTime (); // Erhalten Sie direkt ein Datum des Typs zum Datum
Um andere Arten von Zeitdaten zu erhalten, müssen Sie nur die Parameter in Now.get () ändern. Zusätzlich zu den oben genannten drei Parametern sind andere häufig verwendete Parameter wie folgt:
• Calendar.day_of_month: Datum, wie Calendar.date
• Kalender.HOURS: 12-Stunden-Stunden
• Kalender.HOUR_OF_DAY: Die Anzahl der Stunden in einem 24-Stunden-System
• Kalender.minute: Minute
• Kalender.second: Sekunden
• CALENDAR.DAY_OF_WEEK: WEEKLY
Zusätzlich zum Erhalt von Zeitdaten können wir auch verschiedene Zeitparameter über das Kalenderobjekt festlegen.
// Setzen Sie nur den Wert eines bestimmten Feldes // öffentliche endgültige Leere (int -Feld, int value) Now.set (Calendar.year,); // Set Jahr, Monat, Tag, Stunde, Monat, Tag, Stunde, Minute, zweiter // Public Final Lücke (int Jahr, int Monat, int Datum [, int stündlich, int minute, int second]) now.set (,, [,,,]); // Anmelden ein Datum vom Typ direkt // öffentliche endgültige void set time (Datum) jetzt.set (Datum);
Beachten:
• Wenn der Zeitparameter festgelegt ist, werden andere relevante Werte neu berechnet. Wenn Sie beispielsweise das Datum auf 11. festlegen, werden die entsprechenden Änderungen in der Woche vorgenommen.
• Der Monat, den Sie erhalten, ist plus 1. Der eigentliche Monat ist derjenige.
• In der Kalenderklasse ist der Sonntag 1, Montag 2 und so weiter.
2. Date Conversion
Lassen Sie uns nach dem Chatten über das Datum über die Konvertierung des Datums sprechen. Die Konvertierung ist im Allgemeinen die gegenseitige Konvertierung zwischen dem Datumstyp-Datum und der String-Zeichenfolge. Ich verwende hauptsächlich java.text.SimpledateFormat für den Konvertierungsvorgang.
SimpleDateFormat SDF = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); Versuchen Sie {// Datum zum String calendar calendar = calendar.getInstance (); Datum Datum = calendar.getTime (); String datestRingParse = SDF.Format (Datum); // String to Date String DETESTRING DATESTRING = "- ::"; DatumdateParse = SDF.Parse (DETESTRING); } catch (parseException e) {e.printstacktrace (); }Beachten:
• Das Konvertierungsformat muss beim Erstellen eines SimpleDateFormat -Objekts angegeben werden.
• Das Konversionsformat ist Fall sensibil, yyjy ist ein Jahr, MM repräsentiert den Monat, DD repräsentiert Datum, HH stellt Stunde 2011, HH stellt Stunde in 1011, mm repräsentiert Minute und SS stellt Sekunden dar.
3. Datum Addition und Subtraktion
Im Allgemeinen werden wir zwei Ergänzungen und Subtraktionsvorgänge zu Daten durchführen:
• Berechnen Sie die Daten vor/nach, vor/nach oder vor/nach/nach oder vor und nach und nach anderen Zeiteinheiten.
// Kalender jetzt berechnen = calendar.getInstance (); jetzt.add (Kalender.YEAR,); // nach dem Jahr der aktuellen Zeit jetzt.add (Kalender.YEAR, -); // vor dem Jahr der aktuellen Zeit // Kalender speciadate = calendar.getInstance () berechnen; SpeciAldate.Settime (Datum); // Beachten Sie, dass der Wert von Speciadate in ein bestimmtes Datum SpeciadDate.add (Calendar.year,) geändert wird; // nach dem Jahr der spezifischen Zeitspezifikation.add (Calendar.year, -); // vor dem Jahr der spezifischen Zeit
Beachten Sie, dass die Methode des Calendar -Objekts hinzufügen. Sie können den Kalender wechseln.
• Berechnen Sie das Intervall zwischen zweimal, beispielsweise wie viele Tage gibt es jetzt am 1. Januar 2016.
SimpleDateFormat SDF = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); String datestring = "- ::"; Calendar Calendar = Calendar.getInstance (); long nowdate = calendar.getTime (). GetTime (); //Date.getTime () Millisecond Datum try {long SpeciAldate = Sdf.Parse (DETESTRING) .GetTime (); long betweendate = (SpeciAldate - nowdate) / ( * * *); // Berechnen Sie, wie viele Tage voneinander entfernt sind, sie durch die Umbauformel von Millisekunden in das Days System.out.print (wesentlich) teilen; } catch (parseException e) {e.printstacktrace (); } 4. Datumsvergleich
Als ich meinen vorherigen Code durchgesehen habe, stellte ich fest, dass ich das Datum zuerst in eine Zeichenfolge im Format "yyyymmdd" umwandeln, dann die Zeichenfolge in einen Wert umwandeln und dann die Wertgröße vergleichen können. Haha, es ist eine einfache Vergleichsoperation, aber es braucht mehr als ein Dutzend Codezeilen zum Schreiben, was etwas unerträglich ist. Jetzt müssen wir über die korrekte Vergleichshaltung des Datums sprechen.
Es gibt im Allgemeinen zwei Methoden zum Datumsvergleich, die für java.util.date oder java.util.calendar üblich sind. Einer ist es, mit der vor () Methode nach () zu vergleichen, und das andere ist die Vergleiche () -Methode durch die Vergleiche () -Methode.
SimpleDateFormat SDF = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); String datestring_01 = "2016-01-01 11:11:11"; Datum Datum_02 = SDF.Parse (DEDESTRING_02); System.out.println (DATE_01.BEFORE (DATE_02)); // true, wenn Datum_01 weniger als DATE_02 ist, wenn es true ist, ansonsten ist es falsches System.out.println (DATE_02.After (Date_01)); // true, wenn Datum_02 größer als Date_01 ist, ist es wahr, ansonsten ist es falsch system.out.println (DATE_01.comPARETO (DATE_02)); // -1, wenn Datum_01 weniger als DATE_02 ist, ist es -1 system.out.println (DATE_02.comPARETO (DATE_01)); // 1, wenn Date_02 größer ist als DATE_01, ist es 1 System.out.println (DATE_02.comPARETO (DATE_02)); // 0, wenn zwei Daten gleich sind, ist es 0} catch (parseException e) {e.printstacktrace ();}Das obige ist die vollständige Beschreibung der gemeinsamen Datumsoperationen (Wert, Konvertierung, Addition und Subtraktion, Vergleich) in Java, die Ihnen in diesem Artikel vorgestellt wurden. Ich hoffe es gefällt euch.