Tant que le format est correct, comparez simplement les chaînes directement, il en va de même pour les secondes.
String S1 = "2003-12-12 11:30:24"; String S2 = "2004-04-01 13:31:40"; int res = s1.compareto (s2);
Trouvez la différence de date
SimpledateFormat df = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); Date début = df.parse ("2004-01-02 11:30:24"); Date fin = df.parse ("2004-03-26 13:31:40"); long entre = (end.getTime () - begin.getTime ()) / 1000; // divid by 1000 est de se convertir en secondes int-day = entre / (24 * 3600); int hour = entre% (24 * 3600) / 3600; Int minute = entre% 3600/60; int seconde = entre% 60; Les classes d'heure et de date sont souvent utilisées, de sorte que les méthodes et attributs de date couramment utilisés sont résumés comme suit pour faciliter tout le monde pour les trouver.
1. Calculez le nombre maximum de jours dans un certain mois
Temps de calendrier = calendar.getInstance (); Time.Clear (); Time.set (calendar.year, année); Time.set (calendar.month, i-1); // notez que l'objet calendaire par défaut est le 0 janvier int Int day = time.getactualmaximum (calendar.day_of_month); // le nombre de jours de ce mois-ci
Remarque: Avant d'utiliser la méthode SET, il est préférable de l'effacer d'abord, sinon beaucoup d'informations seront héritées de l'heure du système actuel.
2. Conversion du calendrier et de la date
(1) Calendrier converti à ce jour
Calendar cal = calendar.getInstance (); Date de date = cal.gettime ();
(2) Convertir la date en calendrier
Date de date = new Date (); Calendar cal = calendar.getInstance (); cal.settime (date);
3. Formater la date et l'heure de sortie
Date de date = new Date (); SimpledateFormat df = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); System.out.println (df.format (date)); 4. Calculez quelle semaine de l'année
(1) Calculer la semaine de l'année par jour
Calendar cal = calendar.getInstance (); Cal.set (Calendar.Year, 2006); Cal.set (Calendar.month, 9); cal.set (calendar.day_of_month, 3); int Weekno = cal.get (calendar.week_of_year);
(2) Calculer la semaine de l'année
SimpledateFormat df = new SimpledateFormat ("yyyy-mm-dd"); Calendar cal = calendar.getInstance (); Cal.set (Calendar.Year, 2006); cal.set (calendar.week_of_year, 1); cal.set (calendar.day_of_week, calendar.onday); System.out.println (df.format (cal.getTime ()));Sortir:
2006-01-02
5. Utilisation de Add () et Roll ()
(1) Add () Méthode
SimpledateFormat df = new SimpledateFormat ("yyyy-mm-dd"); Calendar cal = calendar.getInstance (); Cal.set (Calendar.Year, 2006); Cal.set (Calendar.month, 9); cal.set (calendar.day_of_month, 3); cal.add (calendar.date, -4); Date de date = cal.gettime (); System.out.println (df.format (date)); cal.add (calendar.date, 4); date = cal.gettime (); System.out.println (df.format (date)); Sortir:
2006-08-30
2006-10-03
(2) Méthode de roulis
Cal.set (Calendar.Year, 2006); Cal.set (Calendar.month, 9); cal.set (calendar.day_of_month, 3); Cal.Roll (calendar.date, -4); date = cal.gettime (); System.out.println (df.format (date)); Cal.Roll (calendar.date, 4); date = cal.gettime (); System.out.println (df.format (date));
Sortir:
2006-10-29
2006-10-03
On peut voir que la méthode roll () boucle dans ce mois et la méthode Add () est généralement utilisée;
6. calculer le nombre de jours entre deux temps arbitraires
(1) passer dans l'objet calendrier
/ ** * // ** Calculez le nombre de jours entre deux fois * @Param Startday Heure de démarrage * @param Endday Heure * @return * / public int getIntervaldays (Calendar Startday, Calendar Finday) .. {// Assurez-vous avant le début de la journée de la fin de la journée; deux fois respectivement longs sL = startday.getTimeInmillis (); long el = finday.getTimeInmillis (); long ei = el-sl; // Calculez les jours d'intervalle basés sur le retour des millisecondes (int) (ei / (1000 * 60 * 60 * 24));}(2) passer dans l'objet de date
/ ** * // ** Calculez le nombre de jours entre deux fois * @Param Startday Heure de début * @Param Finday Heure * @return * / public int getIntervaldays (Date à l'étranger, date de fin) ... {// assurez-vous SL = startday.getTime (); long el = finday.gettime (); long ei = el-sl; // Calculez les jours d'intervalle basés sur le retour des millisecondes (int) (ei / (1000 * 60 * 60 * 24));}De même, vous pouvez utiliser la même méthode pour calculer le nombre d'heures, de minutes, de secondes, etc. Remarque: La méthode ci-dessus est calculée complètement en fonction du temps, et parfois elle n'est pas satisfaisante, comme:
Startday = "2006-10-11 20:00:00" Finday = "2006-10-12 8:00:00"
Le résultat du calcul est 0, mais nous pouvons faire en sorte que le résultat de calcul devienne 1. À l'heure actuelle, nous pouvons utiliser la méthode suivante:
Avant de passer l'argument, définissez d'abord l'heure de fin, comme:
Endday.set (calendar.hour_of_day, 23); Endday.set (calendar.minute, 59); Endday.set (Calendar.second, 59); Endday.set (calendar.millisecond, 59);
Si vous le transmettez, le résultat sera comme nous le souhaiterons. Cependant, si vous trouvez la méthode ci-dessus gênante, vous pouvez vous référer à la méthode suivante:
(3) Améliorer la méthode de calcul avec précision le nombre de jours d'intervalle
public int getdaysbetween (calendar d1, calendar d2) ... {if (d1.after (d2)) ... {// swap dates de sorte que d1 est start et d2 est fin java.util.calendar swap = d1; d1 = d2; d2 = swap;} int ways = d2.get (calendar.dayday_of_year) - d1.get(Calendar.DAY_OF_YEAR);int y2 = d2.get(Calendar.YEAR);if (d1.get(Calendar.YEAR) != y2) ...{d1 = (Calendar) d1.clone();do ...{days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);//Get the actual number of days of the year d1.add (calendar.year, 1);} while (d1.get (calendar.year)! = y2);} jours de retour;}Obtenez l'heure actuelle du système:
public static String getSystemtime () {date date = new Date (); SimpledateFormat df = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); return df.format (date);} // convertir la chaîne en un type de temps (la chaîne peut être n'importe quel type, dès qu'elle est le même que le format dans SimpledateFormat) java.text.simpledateformat sdf = new java.text.simpledateformat ("m / dd / yyyy hh: mm: ss a", java.util.locale.us); java.util.date d = sdf.parse ("5/13/2003 10:31:37 am"); saiple SimpledateFormat ("Yyyy-mm-dd HH: MM: SS"); String mdateTime1 = Formatter.Format (D); // Calendar Cal = Calendar.getInstance (); // SimpledateFormat formatter = new SimpledateFormat ("yyyy-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 ()); // il y a 1 an 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); // Demain Date MyDate = New java.util.date (); mytime = (mydate.gettime () / 1000) + 60 * 60 * 24; mydate.settime (Mytime * 1000); mdate = formatter.format (mydate); // le nombre de jours entre deux fois simpledateformat myformatter = new Simpleformat ("yyyymm-dd"); java. myFormatter.parse("2003-05-1");java.util.Date mydate= myFormatter.parse("1899-12-30");long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);//Add half an hour SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH: mm: ss "); java.util.date date1 = format.parse (" 2002-02-28 23:16:00 "); Long temps = (date1.getTime () / 1000) + 60 * 30; Date1.settime (heure * 1000); String MyDate1 = Formatter.Format (Date1); // année, mois, semaine, date SimpledateFormat formatter2 = new SimpledateFormat ("yyyy-mm fe"); java.util.date date2 = Formatter2.Parse ("2003-05 5 5 Vendredi "); SimpledateFormat Formatter3 = new SimpledateFormat (" Yyyy-mm-dd "); String MyDate2 = Format3.Format (Date2); // Find the Day of the Week MyDate = MyFormatter.Parse (" 2001-1-1 "); String MyDate3 = Formatter4.Dans le développement d'applications Web, nous devons effectuer différentes conversions dans différentes types de dates dans notre programme pour différents types de dates de base de données. Si les données de base de données correspondantes sont le type de date d'Oracle, c'est-à-dire que seuls l'année, le mois et le jour sont nécessaires, vous pouvez choisir d'utiliser le type java.sql.date. Si les données de base de données correspondantes sont le type DateTime de la base de données MSSQLServer, c'est-à-dire que l'année, le mois, le jour, l'heure, la minute et la seconde sont nécessaires, sélectionnez le type java.sql.timestamp
Vous pouvez utiliser DateFormat pour définir la forme de l'heure et de la date et la transformer en chaîne
package personnel.jessica; importer java.util.date; import java.util.calendar; import java.sql.timestamp; import java.text.dateformat; import java.text.simpledateFormat; import java.util.locale; class Datetest {/ ** * convertit la méthode de la date de la date de la chaîne pour un time de timeau. java.sql.timestamp) * @ param datestring string qui doit être converti en horodat * @ return datatime horodatamp * / public final static java.sql.timestamp string2time (string datestring) lance java.text.parseException {dateformat kk: mm: ss.sss ", locale.english); // set format // dateformat = new SimpledateFormat (" yyyy-mm-dd kk: mm: ss ", locale.english); dateFormat.SetLenient (false); java.util.date timedate = dateFormat.Parse (dateString); // Util type java.sql.timestamp datetime = new java.sql.timestamp (timedate.getTime ()); // TimeStamp Type, Timedate.getTime () Renvoie un longue date de retour; Type de chaîne à une date (java.sql.date) * @ param datestring La chaîne qui doit être convertie à ce jour * @ return datatime date * / public final static java.sql.date String2Date (string datestring) lance java.lang.exception {dateformat Locale.english); dateFormat.SetLenient (false); java.util.date timedate = dateFormat.Parse (dateString); // util type java.sql.date datetime = new Java.sql.date (timedate.gettime ()); // sql type datetime;} public static static main (strings) {sql datetime;} public static static main (strings) {sql datetime; che Date (); // Remarque: à cet endroit, da.gettime () obtient un système de valeur longue.out.println (da.gettime ()); // converti à partir de la date à horodat // la première méthode: utilisez un nouvel horodat (long) horodatage t = new Timestamp (new Date (). GetTime ()); System.out.println (t); // La deuxième méthode: utilisez l'horodatage (int an, int mois, date int, int hour, int mutte, int seconde, int nano) himestamp tt = new timestamp (calendar.gendarInstance (). Get (calendar.year) - 1900, calendar.gendinstance (). Get (calendar.monthmoth), calindar.getance (). Get (Calendar.monthmoth), Calendar.getance. Calendar.date), calendar.getInstance (). Get (calendar.hour), calendar.getInstance (). Get (calendar.minute), calendar.getInstance (). Get (calendar.second), 0); System.out.println (tt); try {string stodate = "2005-8-18"; java.sql.date stotimestamp = "2005-8-18 14: 21: 12.123"; // Standle String utilisée pour convertir à Java.Sql.timestamp Date Date1 = String2Date (stodate); Timestamp Date2 = "StringTime (stotimestamp); System.out.Println (" Date: "+ Date1.tostring ()); converti en java.sql.timestamp date date1 = string2Date (stotimestamp); System.out.println ("date:" + date2.tostring ()); // Standle String utilisé pour convertir à java.sql.timestamp Date 2 = String2time (stotiMestamp); System.out.println ("TimeStamp:" + Date2.ToString ()); // Standle Tostack} Catch (Exception E) {e.PrintStackTrace ();}}}Voici un exemple:
Code java
Test de package; import java.text.dateformat; import java.text.parseException; import java.text.simpledateformat; import java.util.calendar; importer java.util.date; import java.util.hashTable; import javax.swing.joptionpane; public class test2 {public static boolean natean natate (String S) a [] = s.split ("-"); booléen flg = true; if (! (Integer.parseint (a [0])> = 1950 && Integer.parseint (a [0]) <= 2050)) {flg = false;} return flg;} public static boolean checkDate (string s) {boolean retr = trul; SimpledateFormat ("yyyy-mm-dd"); ret = df.format (df.parse (S)). HashTable (); fest.put ("01-01", "Nouvel An"); fest.put ("02-14", "Saint-Valentin"); fest.put ("03-12", "ARBOR DAY"); fest.put ("03-15", "Consumer Day"); fest.put ("04-01", "Avril's Day"); festival " Festival "); fest.put (" 05-01 "," Journée du Travail "); fest.put (" 06-01 "," Journée des enfants "); fest.put (" 07-01 "," Centering the Party Day "); fest.put (" 08-01 "," Day de l'armée "); fest.put (" 09-10 ". Jour "); fest.put (" 12-25 "," Noël "); if (fest.containsKey (a [1])) {return fest.get (a [1]);} else {return" pas holiday ";}} public string xingzuo (date s) {calendar cal = calendar.getinstance (); cal.settime (s); String xingzuo ="; day = 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 && day <= 19) || (day> = 357 && day <= 366)) {xingzuo = "scorpio";} else if (day> = 20 && day <= 49) {xingzuo = "Aquarius";} else if (day> = 50 && day <= 80) {xingzuo = "pisses";} else (day> = 81 && day <= 110) {xingzuo = "Aries";} else if (day> = 111 && day <= 141) {xingzuo = "taurus";} else if (day> = 142 && day <= 173) {xingzuo = "gemini";} else if (day> = 174 && day <= 203) {xingzu "; else if (day> = 204 && day <= 235) {xingzuo = "leo";} else if (day> = 236 && day <= 266) {xingzuo = "Virgo";} else if (day> = 267 && day <= 296) {xingzuo = "libra";} else if (day> = 297 &&&k <= 36) {xingzuo = day> = 297 &&&&&&&3 "Scorpio";} else if (day> = 327 && day <= 356) {xingzuo = "sauvignon";}} else {if ((day> = 1 && day <= 19) || (day> = 357 && day <= 366)) {xingzuo = "Scorpio";} else if (day> = 20 = 20 && day <= 48) {xingzuo = "Aquarius";} else if (day> = 49 && day <= 79) {xingzuo = "Poisses";} else if (day> = 80 && day <= 109) {xingzuo = "aries";} else if (day> = 110 && day <= 140) {xingzuo = "taurus";} else if (day> = 141 && day <= 172) {xingzuo = "gemini";} else if (day> = 173 && day <= 202) {xingzuo = "cancer";} else if (day> = 203 && day <= 234) {xingzuo = "leo";} else if (day> = "Virgo";} else if (day> = 266 && day <= 295) {xingzuo = "libra";} else if (day> = 296 && day <= 325) {xingzuo = "scorpio";} else if (day> = 326 && day <= 355) {xingzuo = "Saucy";} PARSEDATE (String S) {SimpledateFormat BartDateFormat = new SimpledateFormat ("Yyyy-mm-dd"); Try {Date Date3 = BartDateFormat.Parse (S); Date3 = BartDateFormat.Parse (S); cal = calendar.getInstance (); test2 test2 = new test2 (); chaîne date1 = joptionpane.showinputDialog ("Veuillez saisir la date, le format est en 2000-10-15"); tandis que (! (test2.checkdate (date1) && test2.isdate (date1))) {date1 = joptionpane.showinputDialog ("s'il vous plaît entrez la date, le format est en 2000-10-15");} SimpledateFormat BartdateFormat1 = new SimpledateFormat ("Yyyy, mm, dd, eee"); bartDateFormat2 = new SimpledateFormat ("yyyy-mm-dd"); date date2 = test2.parsedate (date1); string festinfo = (string) test2.dateInfo (date1); system.out.println (bartdateformat1.format (date2) + "," + festinfo + "," + test2.xingzuo (date2); STRING. day = jOptionPane.showInputDialog ("Veuillez saisir les informations de date pour interroger n jours"); cal.settime (date2); cal.add (calendar.date, Integer.Parseint (Day)); String date5 = bartDateFormat2.format (cal.gettime ()); festiatfo = (string) test2.dateInfo (date5); System.out.println (bartDateFormat1.format (cal.gettime ()) + "," + festinfo + "," + test2.xingzuo (cal.getTime ()));}}Résumer
Ce qui précède est toute l'explication détaillée de l'heure Java et de l'utilisation de la date et du code de requête dans cet article. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!