Pendant le développement de Java, j'ai été inévitablement enchevêtré avec le type de date. J'allais résumer les opérations liées à la date que le projet souvent utilisées. JDK Version 1.7. Si cela peut vous aider à économiser quelques minutes pour vous lever et bouger et faire une tasse de café, ce serait génial. Hehe. Bien sûr, je ne fournit que des solutions viables et je ne suis pas garanti d'être les meilleures pratiques, et les discussions sont les bienvenues.
1. Valeur de date
À l'ère de l'ancien JDK, il y avait de nombreux codes qui utilisaient la classe java.util.date en termes de valeurs de date. Cependant, comme le cours de date n'est pas pratique pour réaliser l'internationalisation, il est recommandé d'utiliser la classe java.util.calendar pour le traitement de l'heure et de la date à partir de JDK1.1. Je ne présenterai pas les opérations de la classe de date ici. Passons directement au sujet et comment utiliser la classe de calendrier pour obtenir la date et l'heure actuelles.
Étant donné que la méthode du constructeur de Calendar est modifiée par protégé, nous créerons un objet Calendaire via la méthode GetInstance fournie dans l'API.
// Il existe plusieurs méthodes surchargées pour créer des objets calendaires Calendar maintenant = calendar.getInstance (); // par défaut // Spécifiez le fuseau horaire et la région, ou vous ne pouvez entrer qu'un des paramètres Calendar Now = Calendar.getInstance (Timezone, Locale);
Ensuite, nous pouvons obtenir les différents paramètres de temps actuels via l'objet.
int an year = now.get (calendar.year); //, l'année en cours int mois = maintenant.get (calendar.month) +; //, mois en cours, veuillez ajouter int day = maintenant.get (calendar.date); //, date de jour en cours = maintenant.getTime (); // Obtenez directement une date de type date
Pour obtenir d'autres types de données de temps, il vous suffit de modifier les paramètres dans maintenant.get (). En plus des trois paramètres ci-dessus, d'autres paramètres couramment utilisés sont les suivants:
• calendar.day_of_month: date, identique à Calendar.Date
• Calendrier.
• calendar.hour_of_day: le nombre d'heures dans un système 24 heures
• Calendrier. Minute: Minute
• Calendrier.
• calendar.day_of_week: hebdomadaire
En plus d'obtenir des données de temps, nous pouvons également définir divers paramètres de temps via l'objet calendrier.
// Définit uniquement la valeur d'un certain champ // le jeu de void final public (INT Field, Int Value) Now.Set (Calendar.year,); // Réglage de l'année, du mois, du jour, de l'heure, du mois, du jour, de l'heure, de la minute, du deuxième // Public Final Void Set (Int Year, int mois, int Date [, int hourofday, int Minute, int Second]) Now.Set (,, [,,,,]); // Inscrivez-vous une date de type Date directement // public final void settime (date de date) maintenant.set (date);
Avis:
• Lorsque le paramètre d'heure est défini, d'autres valeurs pertinentes seront recalculées. Par exemple, lorsque vous définissez la date sur 11, les modifications correspondantes seront apportées à la semaine.
• Le mois que vous obtenez est plus 1. Le mois réel est celui.
• Dans la classe du calendrier, le dimanche est de 1, le lundi est de 2 ans, et ainsi de suite.
2. Conversion de la date
Après avoir discuté de la date, parlons de la conversion de la date. La conversion est généralement la conversion mutuelle entre la date de type date et la chaîne de type chaîne. J'utilise principalement java.text.simpledateFormat pour l'opération de conversion.
SimpledateFormat sdf = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); Essayez {// Date à String Calendar Calendar = Calendar.getInstance (); Date de date = calendar.getTime (); String dateStringParse = sdf.format (date); // String to Date String datestring datestring = "- ::"; DATE DATEPARSE = SDF.Parse (DateString); } catch (parseException e) {e.printStackTrace (); }Avis:
• Le format de conversion doit être spécifié lors de la création d'un objet SimpleDateFormat.
• Le format de conversion est sensible à la casse, Yyyy représente l'année, MM représente le mois, DD représente la date, HH représente l'heure en 2011, HH représente l'heure en 1011, MM représente la minute et SS représente des secondes.
3. Ajout de date et soustraction
D'une manière générale, nous ferons deux ajouts et opérations de soustraction aux dates:
• Sur la base d'une date, calculez les dates avant / après, avant / après, ou avant / après, ou avant et après les autres unités de temps.
// Calculer Calendar Now = Calendar.getInstance (); maintenant.add (calendar.year,); // après l'année de l'heure actuelle maintenant.add (calendar.year, -); // Avant l'année de l'heure actuelle // Calculer Calendar SpecialDate = Calendar.getInstance (); SpecialDate.SetTime (date); // Notez que la valeur de SpecialDate est modifiée à une date spécifique SpecialDate.add (calendar.year,); // Après l'année de l'heure spécifique SpecialDate.add (calendar.year, -); // avant l'année de l'heure spécifique
Notez que la méthode ADD de l'objet calendrier est utilisée. Vous pouvez modifier Calendar.year sur n'importe quel champ d'unité de temps pour terminer le calcul de la date dans différentes unités de temps.
• Calculez l'intervalle entre deux fois, par exemple, combien de jours y a-t-il maintenant le 1er janvier 2016.
SimpledateFormat sdf = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); String datestring = "- ::"; Calendar Calendar = calendar.getInstance (); Long NowDate = Calendar.GetTime (). GetTime (); //Date.getTime () Get en millisecond date try {long SpecialDate = sdf.Parse (dateString) .getTime (); long betweendate = (spécialDate - NowDate) / (* * *); // Calculez combien de jours d'intervalle, divisez-le par la formule de conversion des millisecondes à Days System.out.print (Betweendate); } catch (parseException e) {e.printStackTrace (); } 4. Comparaison de la date
En regardant mon code précédent, j'ai constaté que chaque fois que j'effectuerai une opération de comparaison de date, je convertirai d'abord la date en une chaîne au format "yyyymmdd", puis convertir la chaîne en valeur, puis comparer la taille de la valeur. Haha, c'est une opération de comparaison simple, mais il faut plus d'une douzaine de lignes de code à écrire, ce qui est un peu insupportable. Nous devons maintenant parler de la bonne posture de comparaison de date.
Il existe généralement deux méthodes de comparaison des dates, qui sont courantes pour java.util.date ou java.util.calendar. L'un consiste à comparer la méthode avant () à travers (), et l'autre est de la méthode compareto () via la méthode comparisonto ().
SimpledateFormat sdf = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); string datestring_01 = "2016-01-01 11:11:11"; string datestring_02 = "2016-01-02 11:11:11"; try {date date_01 = sdf.Parse (datestring_01); DATE DATE_02 = SDF.Parse (DATESTRING_02); System.out.println (date_01.before (date_02)); // Vrai, lorsque Date_01 est inférieur à Date_02 quand il est vrai, sinon c'est False System.out.println (date_02.after (date_01)); // Vrai, lorsque Date_02 est supérieur à Date_01, il est vrai, sinon c'est False System.out.println (date_01.compareto (date_02)); // - 1, lorsque Date_01 est inférieur à Date_02, il s'agit de -1 System.out.println (date_02.compareto (date_01)); // 1, lorsque Date_02 est supérieur à Date_01, il s'agit de 1 System.out.println (date_02.compareto (date_02)); // 0, lorsque deux dates sont égales, il est 0} catch (paSeException e) {e.printStackTrace ();}Ce qui précède est la description complète des opérations de date communes (valeur, conversion, addition et soustraction, comparaison) dans Java présenté à vous dans cet article. J'espère que vous l'aimez.