Solange das Format korrekt ist, vergleichen Sie einfach die Zeichenfolgen direkt, dasselbe gilt für Sekunden.
String S1 = "2003-12-12 11:30:24"; String S2 = "2004-04-01 13:31:40"; int res = s1.comPareto (S2);
Finden Sie den Datumsunterschied
SimpleDateFormat df = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); Datum begin = df.Parse ("2004-01-02 11:30:24"); Datum End = df.Parse ("2004-03-26 13:31:40"); lang zwischen = (end.getTime ()-begin.getTime ())/1000; // divid um 1000 ist, um in Sekunden zu konvertieren int tag = zwischen/(24*3600); int stunde = zwischen%(24*3600)/3600; int Minute = zwischen%3600/60; int zweiter = zwischen%60; Zeit- und Datumsklassen werden häufig verwendet, sodass die häufig verwendeten Datumsmethoden und -attribute wie folgt zusammengefasst werden, um alle zu erleichtern, um sie zu finden.
1. Berechnen Sie die maximale Anzahl der Tage in einem bestimmten Monat
Kalenderzeit = calendar.getInstance (); time.clear (); time.set (Calendar.year, Jahr); time.set (Calendar.month, I-1); // Beachten
HINWEIS: Bevor Sie die SET -Methode verwenden, werden sie am besten zuerst gelöscht, andernfalls werden viele Informationen aus der aktuellen Systemzeit vererbt.
2. Konvertierung von Kalender und Datum
(1) bisher konvertierter Kalender
Kalender cal = calendar.getInstance (); Datum Datum = cal.getTime ();
(2) Datum in Kalender umwandeln
Datum Datum = neuer Datum (); Kalender cal = calendar.getInstance (); Cal.Settime (Datum);
3.. Formatieren Sie das Ausgabedatum und die Uhrzeit
Datum Datum = neuer Datum (); SimpleDateFormat df = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); System.out.println (df.format (Datum)); 4. Berechnen Sie welche Jahreswoche
(1) Berechnen Sie, welche Woche des Jahres am Tag ist
Kalender cal = calendar.getInstance (); Cal.set (Calendar.year, 2006); Cal.set (Kalender. Month, 9); Cal.set (Calendar.day_of_month, 3); int weekno = cal.get (calendar.week_of_year);
(2) Berechnen Sie, welche Woche des Jahres ist
SimpleDateFormat DF = new SimpledateFormat ("yyyy-mm-dd"); Kalender cal = calendar.getInstance (); Cal.set (Calendar.year, 2006); Cal.set (Calendar.week_of_year, 1); Cal.set (CALENDAR.DAY_OF_WEEK, CALENDAR.MONDAY); System.out.println (df.format (cal.getTime ()));Ausgabe:
2006-01-02
5. Verwendung von add () und roll ()
(1) add () Methode
SimpleDateFormat DF = new SimpledateFormat ("yyyy-mm-dd"); Kalender cal = calendar.getInstance (); Cal.set (Calendar.year, 2006); Cal.set (Kalender. Month, 9); Cal.set (Calendar.day_of_month, 3); Cal.Add (Calendar.Date, -4); Datum Datum = cal.getTime (); System.out.println (df.format (Datum)); Cal.Add (Kalender.Date, 4); Date = Cal.getTime (); System.out.println (df.format (Datum)); Ausgabe:
2006-08-30
2006-10-03
(2) Rollmethode
Cal.set (Calendar.year, 2006); Cal.set (Kalender. Month, 9); Cal.set (Calendar.day_of_month, 3); Cal.roll (Calendar.Date, -4); Date = Cal.getTime (); System.out.println (df.format (Datum)); Cal.Roll (Kalender.Date, 4); Date = Cal.getTime (); System.out.println (df.format (Datum));
Ausgabe:
2006-10-29
2006-10-03
Es ist ersichtlich, dass die Roll () -Methode innerhalb dieses Monats und die add () -Methode im Allgemeinen verwendet wird;
6. Berechnen Sie die Anzahl der Tage zwischen zwei willkürlichen Zeiten
(1) In das Kalenderobjekt übergeben
/*** // ** Berechnen Sie die Anzahl der Tage zwischen zweimal* @param Startday Startzeit* @param Endday Endzeit* @return*/public int getEntervaldays (Kalender -Startday, Kalender am Endeday) .. {// sicherstellen, dass der Startday Startday (Startday.Afday). zweimal langen sl = startday.getTimeInmillis (); long el = endday.getTimeInmillis (); Long EI = el-Sl; // Berechnen Sie die Intervalltage basierend auf den Millisekunden zurück (int) (ei/(1000*60*60*24));};(2) In das Datumsobjekt übergeben
/*** // ** Berechnen Sie die Anzahl der Tage zwischen zweimal* @param Startday Startzeit* @param Endday Endzeit* @return*/public int getEntervaldays (Datum Startday, Datum am Endeday). sl = startday.getTime (); long el = endday.getTime (); Long EI = el-Sl; // Berechnen Sie die Intervalltage basierend auf den Millisekunden zurück (int) (ei/(1000*60*60*24));};
In ähnlicher Weise können Sie dieselbe Methode verwenden, um die Anzahl der Stunden, Minuten, Sekunden usw. zu berechnen: Die obige Methode wird basierend auf der Zeit vollständig berechnet, und manchmal ist sie nicht zufriedenstellend, wie z.
startday = "2006-10-11 20:00:00" galtday = "2006-10-12 8:00:00"
Das Berechnungsergebnis beträgt 0, aber wir können das Berechnungsergebnis zu diesem Zeitpunkt machen. Zu diesem Zeitpunkt können wir die folgende Methode verwenden:
Stellen Sie vor dem Übergeben des Arguments die Endtagszeit zuerst fest, z. B.:
Endday.set (Calendar.hour_of_day, 23); Endday.Set (Calendar.minute, 59); Endday.set (Calendar.Second, 59); Endday.Set (Calendar.Millisecond, 59);
Wenn Sie es weitergeben, ist das Ergebnis so, wie wir es wünschen. Wenn Sie jedoch die obige Methode problematisch finden, können Sie sich auf die folgende Methode beziehen:
(3) Verbesserung der Methode, die Anzahl der Tage auseinander zu berechnen
public int getaysbetween (Kalender D1, Kalender D2) ... {if (d1.after (d2)) ... {// Swap -Daten, so dass D1 start und d2 ist end java.util.calendar Swap = D1; D1 = D2; D2 = Swap;} intage = days = ddays (calendar (calendar d1.get (calendar.day_of_year); int y2 = d2.get (calendar.year); if (d1.get (calendar.year)! D1.Add (Kalender.YEAR, 1);} while (d1.get (calendar.year)! = y2);} Rückgabe Tage;}Holen Sie sich die aktuelle Systemzeit:
public static String getSystemtime () {Datum Datum = new Date (); SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); return df.Format (Datum);} // Die String in einen Zeittyp konvertieren (der Zeichenfolge, der jedes Typ. sdf = new Java.Text.SimpledateFormat ("m/dd/yyyy hh: mm: ss a", java.util.locale.us); HH: mm: ss "); String mdatetime1 = Formatter.Format (d); // Kalender cal = calendar.getInstance (); // SimpleDateFormat Formatter = new SimpleDateFormat (" yyyyy-mm-dd hh: mm: ss "); SimpleDateFormat Formatter = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss gedf w w a ef"); String mdatetime = formatter.format (cal.getTime ()); // 1 Jahr Datum java.util.date mydate = new java.util.date (); Long mytime = (mydate.getTime ()/1000) -60*60*24*365; myDate.settime (mytime*1000); String mdate = formatter.format (mydate); // morgen Datum mydate = neu java.util.date (); mytime = (mydate.getTime ()/1000)+60*60*24; mydate.settime (myTime*1000); myFormatter.Parse ("2003-05-1"); HH: MM: SS "); Java.util.Date Datum1 = Format.Parse (" 2002-02-28 23:16:00 "); Langzeit = (Datum1.GetTime ()/1000)+60*30; Datum1.Settime (Zeit*1000); String myDate1 = Formatter.Format (Datum1); // Jahr, Monat, Woche, Datum SimpleDateFormat formatter2 = new SimpleDateFormat ("yyyy-mm fe"); Freitag "); SimpleDateFormat Formatter3 = new SimpledateFormat (" yyyy-mm-dd "); String mydate2 = format3.Format (Datum2); // finde den Tag der Woche mydate = myFormatter.Parse (" 2001-1 ");Bei der Entwicklung von Webanwendungen müssen wir verschiedene Conversions bis Datumstypen in unserem Programm für verschiedene Datenbankdatumstypen vornehmen. Wenn die entsprechenden Datenbankdaten der Datumstyp von Orakel sind, dh nur das Jahr, der Monat und der Tag benötigt, können Sie den Typ Java.sql.date verwenden. Wenn die entsprechenden Datenbankdaten der DateTime -Typ der MSSQLServer -Datenbank sind, dh das Jahr, Monat, Tag, Stunde, Minute und Sekunde benötigen, wählen Sie den Typ Java.sql.Timestamp aus
Sie können DateFormat verwenden, um das Format und das Datum zu definieren und es in eine Zeichenfolge umzuwandeln
Paket Personal.jessica; Import Java.util.date; Import Java.util.calendar; Import Java.sql.timestamp; Import Java.Text.DateFormat; Java.Text.SimpledateFormat; Importieren Sie Java.util.locale; java.sql.timestamp) *@param dreatestring-Zeichenfolge, die in Timestamp *@return DataTime Timestamp */public Final static java.sql.timestamp String2Time (String datestring) Java.text.parseException {DateFormatformat; DateFormat; DateFormat; KK: MM: Ss.SSS ", Locale.English); // Format einstellen // DateFormat = new SimpledateFormat (" yyyy-mm-dd kk: mm: ss ", locale.english); DateFormat.Setlenient (false); java.util.date Timedate = DateFormat.Parse (DETESTRING); // Util Typ Java.sql.timestamp datetime = new Java.sql.timestamp (Timedate.getTime ()); // Timestamp -Typ, Timedate. Geben Sie ein Datum ein (java.sql.date) *@param DETESTRING Die Zeichenfolge, die bisher konvertiert werden muss Local Date (); // Anmerkung: An diesem Ort erhält Da.getTime () ein langes Wertesystem.out.println (da.getTime ()); // von Datum in Zeitstempel konvertieren // Die erste Methode: Verwenden Sie neue Zeitstempel (lang) Zeitstempel t = neuer Zeitstempel (neues Datum (). GetTime ()); System.out.println (t); // Die zweite Methode: Verwenden Sie den Zeitstempel (int Jahr, int Monats, int Datum, int stündlich, int minute, int zweiter, int nano) timestamp tt = neuer timestempel (calendar.getInstance (). Get (calendar.year) - 1900, calendar.getar.Getinstance (). Get (). Calendar.date), Calendar.getInstance (). java.sql.date stotimestamp = "2005-8-18 14: 21: 12.123"; // Standle-String, die zum Konvertieren in Java.Sql.Timestamp Datum 1 = String2Date (Stodat); Timestamp Date2 = String2Time (Stotimestamp); system.out.Println ("Date:"+Date.toString (); Konvertieren Sie in Java.sql.timestamp Datum Datum1 = String2Date (Stotimestamp); System.out.println ("Datum:"+Date2.toString ()); // Standle -Zeichenfolge, die zum Konvertieren in Java.sql.Timestamp Datum2 = verwendet wurde String2Time (Stotimestamp); System.out.println ("Timestamp:"+Date2.toString ()); // Standle -Tostack} catch (Ausnahme E) {e.printstacktrace ();}}}Hier ist ein Beispiel:
Java -Code
Pakettest; import Java.Text.DateFormat; Import Java.Text.ParseException; Import Java.Text.SimpledateFormat; Import Java.util.Calendar; Import Java.util.Date importieren java.util.hashtable. a [] = ssplit ("-"); boolean flg = true; if (! (Integer.ParseInt (a [0])> = 1950 && Integer SimpleDateFormat ("yyyy-mm-dd"); ret = df.Format (df.parse (s)). Equals (s);} catch (parseException e) {ret = false;} reta ret;} öffentliches Objekt DateInfo (String S) {String a [] = S.Ssplit ("-", 2); Hashtable (); Fest.put ("01-01", "Neujahrstag"); Fest.put ("02-14", "Valentinstag"); Fest.put ("03-12", "Arbor Day"); Fest. Festival "); Fest.put (" 05-01 "," Labor Day "); Fest. Tag "); Fest.put (" 12-25 "," Weihnachten "); if (Fest. tag = cal.get (calendar.day_of_year); if ((cal.get (calendar.year)%4 == 0) && (cal.get (calendar.year)%100! = 0) || (cal.get (calendar.year)%400 == 0)) {if (Day> = 1 1 && Tag <= 19) || (Tag> = 357 && Tag <= 366)) {Xingzuo = "scorpio";} else if (tag> = 20 && Tag <= 49) {xingzuo = "Wassermann"; && Tag <= 110) {xingzuo = "Aries";} else if (tag> = 111 && Tag <= 141) {xingzuo = "taurus";} else if (tag> = 142 && tag <= 173) {xingzuo = "Gemini";}} cancer if (tag} if (tag> = tag} tag} = sonst if (tag> = 204 && tag <= 235) {xingzu && Tag <= 326) {xingzuo = "scorpio";} else if (tag> = 327 && Tag <= 356) {xingzuo = "sauvignon";}} else {if (tag> = 1 && Tag <= 19) || (Tag> = 357 && Tag <= 366) {· xingzuo | if (Tag> = 20 && Tag <= 48) {xingzuo = "aquarius";} else if (tag> = 49 && Tag <= 79) {xingzuo = "Pisces";} else if (tag> = 80 && Tag <= 109) {xingzu "Taurus";} else if (tag> = 141 && Tag <= 172) {xingzu && Tag <= 265) {Xingzuo = "virgo";} else if (tag> = 266 && Tag <= 295) {xingzuo = "libra";} else if (tag> = 296 && Tag <= 325) {xingzuo = "scorpio"; "Saucy";}} return Xingzuo;} öffentliches Datum an ParseDate (String S) {SimpleDateFormat BartDateFormat = new SimpledateFormat ("yyyy-mm-dd"); try {Datum Datum 3 = BartDateFormat.Parse (s) Date3 = bartdateformat. null;}} public static void main (String [] args) {calendar cal = calendar.getInstance (); test2 test2 = new Test2 (); String date1 = joptionpane.showInputDialog ("Bitte das Datum eingeben, das Format ist wie 2000-10-15"); while(!(Test2.checkDate(date1)&&Test2.isdate(date1))){date1=JOptionPane.showInputDialog("Please enter the date, the format is as 2000-10-15");}SimpleDateFormat bartDateFormat1 = new SimpleDateFormat("yyyy,MM,dd,EEE");SimpleDateFormat bartDateFormat2 = Neue SimpledateFormat ("yyyy-mm-dd"); Datumsdatum2 = test2.ParseDate (Datum1); String festInfo = (String) test2.DateInfo (Datum1); System.out.println (BartdateFormat1.Format (Date2)+, "+festinfo+", "+test2.xing2) (Datum2); tag = joptionpane.showInputDialog ("Bitte geben Sie die Datumsinformationen an die Abfragen n Tage ein"); Datum5 = BartDateFormat2.Format (cal.getTime ()); FestInfo = (String) test2.DateInfo (Datum5); System.out.println (BartDateFormat1.Format (cal.getTime ())+"+Festinfo+", "+Test2.xingzu (cal.getime));Zusammenfassen
Das obige ist die detaillierte Erklärung der Java -Zeit- und Datumsnutzung und Abfragecode in diesem Artikel. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!