Dans le développement de projets, les dates sont une partie indispensable de nous. Cet article résumera certaines méthodes courantes sur les dates dans le développement du code pour faciliter votre utilisation ultérieure. Les plats sont servis directement en dessous:
package com.example.util; import java.text.parseException; import java.text.simpledateFormat; import java.util.arraylist; import java.util.calendar; Importer java.util.date; Importer java.util.list; / ** * Méthodes de date communes * * @Author * * / Classe publique DateUtils {/ ** * Variables communes * / public static final String date_format_full = "yyyy-mm-dd hh: mm: ss"; public static final String date_format_ymd = "yyyy-mm-dd"; public static final String date_format_hms = "hh: mm: ss"; public static final String date_format_hm = "hh: mm"; public static final String date_format_ymdhm = "yyyy-mm-dd hh: mm"; public static final String date_format_ymdhms = "yyyymmddhhmmss"; public static final long one_day_mills = 3600000 * 24; public static final int semaine_days = 7; private static final int DateLength = date_format_ymdhm.Length (); / ** * Convertir la date du format String * * @param time * @param format * @return * / public static String FormatDateToString (date de date, format de chaîne) {SimpledateFormat sdf = new SimpledateFormat (format); return sdf.format (time); } / ** * Convertir la chaîne au format Date * (Remarque: Lorsque la date à laquelle vous avez entré est 2014-12-21 12:12, le format correspondant devrait être Yyyy-mm-dd HH: MM * Sinon, l'exception sera lancée) * @param Date * @param Format * @return * @throws PareException * @ * / public static FormatstringtStodate (String Format) @ * / public static FormatstringStRingTodate. SimpledateFormat sdf = new SimpledateFormat (format); essayez {return sdf.parse (date); } catch (parseException ex) {ex.printStackTrace (); lancer un nouveau RuntimeException (ex.ToString ()); }} / ** * Déterminez si une date appartient à deux périodes * @param Heure * @param Timerange * @return * / public static booléen istimeInrange (date, date, date de Timerange) {return (! Time.before (Timerange [0]) &&! Time.after (timerange [1])); } / ** * Temps de l'heure complète à la minute * * @param fulldatestr * @return * / public static String getDateToMinute (String fulldatestr) {return fulldatestr == null? null: (fulldatestr.length ()> = dateLength? fullDatestr.Substring (0, dateLength): fullDatestr); } / ** * Retour toutes les semaines de l'année spécifiée. La liste contient la chaîne [2] String d'objet [0] Date de début de la semaine, et la chaîne [1] est la date de fin de la semaine. * La date est dans le format de Yyyy-MM-DD, la première semaine de chaque année doit inclure lundi et être complète de sept jours. * Par exemple: la première semaine de 2009 commence à 2009-01-05 et les fins en 2009-01-11. Quelle année est le lundi? Ensuite, quelle semaine est incluse cette semaine? * Par exemple: 2008-12-29 est le lundi 2009-01-04 est le dimanche, donc cette semaine est la dernière semaine de 2008. * * @Param année * Format Yyyy, doit être supérieur à 1900 et moins de 9999 * @return @ * / public static List <String []> GetWeeksByyear (Final int an) {int Weeks = GetweekoMofyear (Année); List <string []> result = new ArrayList <String []> (semaines); int start = 1; int end = 7; pour (int i = 1; i <= semaines; i ++) {String [] tempweek = new String [2]; tempweek [0] = getDateForDayofweek (année, i, démarrage); tempweek [1] = getDateForDayofweek (année, i, fin); résultat.add (tempweek); } Retour Résultat; } / ** * Calculez l'année et la semaine précédente de l'année et de la semaine spécifiées * * @param année * @param semaine * @return @ * / public static int [] getlastyearweek (int an, int semaine) {if (semaine <= 0) {lancez new illégalargumentException ("Le numéro hebdomadaire ne peut pas être inférieur à 1 !!"); } int [] result = {semaine, année}; if (semaine == 1) {// Résultat de l'année précédente [1] - = 1; // Résultat de la semaine dernière [0] = GetWeeknumOfyear (résultat [1]); } else {result [0] - = 1; } Retour Résultat; } / ** * prochaine [semaine, année] * * @param année * @param semaine * @return @ * / public static int [] getNEXTYEAKEEK (int an, int semaine) {if (semaine <= 0) {lancez new illégalargumentException ("Le numéro hebdomadaire ne peut pas être inférieur à 1 !!"); } int [] result = {semaine, année}; int semaines = getweeknumofyear (année); if (semaine == semaines) {// Résultat de l'année prochaine [1] + = 1; // Résultat de première semaine [0] = 1; } else {result [0] + = 1; } Retour Résultat; } / ** * Calculez combien de semaines il y a dans une année spécifiée. (commence le lundi) * * @param année * @return @ * / public static int getweeknumofyear (finale int) {return getweeknumofyear (année, calendar.onday); } / ** * Calculez combien de semaines il y a dans une année spécifiée. * * @param année * yyyy * @return @ * / public static int getweeknumofyear (finale int, int premierdayofweek) {// il y a au moins 52 semaines chaque année et jusqu'à 53 semaines. int minweeks = 52; int maxweeks = 53; INT Result = minweeks; int sindex = 4; Date de chaîne = GetDateForDayofweek (année, Maxweeks, FirstDayOfweek); // Pour déterminer si l'année correspond, si elle correspond, cela signifie qu'il y a 53 semaines. if (date.SubString (0, sindex) .equals (année)) {result = maxweeks; } Retour Résultat; } public static int getweeksofweekyear (final int an) {calendar cal = calendar.getInstance (); Cal.setFirstDayofweek (Calendar.Monday); cal.setMinimaldaySInFirstweek (semaine_days); Cal.set (calendar.year, année); return cal.getweeksinweekyear (); } / ** * Obtenez la date correspondant au jour de la semaine de l'année spécifiée yyyy-mm-dd (à partir de lundi) * * @param année * @param weekofyear * @param dayofweek * @return yyyy-mm-dd Date au format @ * * / public static string getDatefordayofwek (int yeardofy, int, int dayofewek) {retour getDator pour annue Weekofyear, Dayofweek, Calendar.Monday); } /** * Get the date corresponding to the day of the week of the specified year yyyy-MM-dd, and specify the day of the week to calculate the first day of the week (firstDayOfWeek) * * @param year * @param weekOfYear * @param dayOfWeek * @param firstDayOfWeek * Specify the day of the week to calculate the first day of the week* @return yyyy-MM-dd Date in Format * / public static String getDateForDayofweek (int an, int weekofyear, int dayofweek, int FirstDayOfweek) {calendar cal = calendar.getInstance (); Cal.setFirstDayofweek (FirstDayOfweek); cal.set (calendar.day_of_week, dayofweek); cal.setMinimaldaySInFirstweek (semaine_days); Cal.set (calendar.year, année); cal.set (calendar.week_of_year, weekofyear); return formatDateToString (cal.getTime (), date_format_ymd); } / ** * Obtenez la date spécifiée de la semaine * * @param datetime * @throws parseException * @ * / public static int getweekofdate (String DateTime) lève ParseException {Calendar Cal = Calendar.getInSitance (); Cal.setFirstDayofweek (Calendar.Monday); cal.setMinimaldaySInFirstweek (semaine_days); DATE DATE = FORMATSTRINGTODATE (DateTime, Date_format_ymd); cal.settime (date); return cal.get (calendar.day_of_week); } / ** * Calculez toutes les dates dans une certaine semaine d'une certaine année (du lundi au premier jour de la semaine) * * @param subsum * @param weeknum * @return @ * / public static list <string> getweekdays (int yenwenum, int weeknum) {return getwekdays (année, semaine, calendar.Monday); } / ** * Calculez toutes les dates dans une certaine semaine d'une certaine année (sept jours) * * @param aswum * @param weeknum * @return yyyy-mm-dd Date de date * / public static list <string> getweekdays (int an, int semaineofyear, int FirstDayofweek) {list <string> dates = new ArrayList <string> (); int dayofweek = FirstDayOfweek; for (int i = 0; i <week_days; i ++) {dates.add (getDateForDayofweek (année, semaineofyear, dayofweek ++, premier jourofweek)); } Dates de retour; } / ** * Obtenez les informations de l'année et de la semaine de la date cible pour la semaine précédente, cette semaine, ou la semaine prochaine * * @param QueryDate * Temps entrant * @param weekoffset * -1: La semaine dernière 0: cette semaine 1: la semaine prochaine * @param premier jourofweek * Quel jour de la semaine est le premier jour * @return * @throws parseexect * Weekoffset, int premierdayofweek) lève ParseException {Date Date = FormatStringTodate (queryDate, date_format_ymd); Calendar Calendar = calendar.getInstance (); calendar.settime (date); calendar.setFirstDayofWeek (premier jourofweek); calendar.setMinImalDaySInFirstWeek (semaine_days); int year = calendar.getweekyear (); int semaine = calendar.get (calendar.week_of_year); int [] result = {semaine, année}; Switch (WeekOffset) {cas 1: result = getNExtyEarweek (année, semaine); casser; Cas -1: résultat = GetLastyEarweek (année, semaine); casser; par défaut: pause; } Retour Résultat; } / ** * Calculez le nombre de jours pendant deux jours * * @param startDate * Start Date String * @param endDate * fin date de date * @return * @throws parseException * / public static int getDaySbetween (String startDate, string endDate) lance parseException {int dayGap = 0; if (startDate! = null && startDate.length ()> 0 && endDate! = null && endDate.length ()> 0) {date End = formatStringTodate (enddate, date_format_ymd); Date start = formatStringTodate (startDate, date_format_ymd); daygap = getDaySbetween (start, fin); } retour daygap; } private static int getdaysbetween (date startDate, date EndDate) {return (int) ((endDate.getTime () - startDate.getTime ()) / one_day_mills); } / ** * Calculez la différence du nombre de jours entre deux dates * @param startDate * @param endDate * @return * / public static int getDaySgapofDates (date startdate, date enddate) {int date = 0; if (startDate! = null && endDate! = null) {date = getDaySbetween (startDate, enddate); } Date de retour; } / ** * Calculez l'écart de l'année entre deux dates * * @param firstDate * @param secondDate * @return * / public static int getyeargapofdates (date firstDate, date secondDate) {if (firstDate == null || SecondDate == null) {return 0; } Calendar HelpCalendar = calendar.getInstance (); HelpCalendar.SetTime (FirstDate); int Firstyear = helpCalendar.get (calendar.year); HelpCalendar.SetTime (SecondDate); int secondyear = helpCalendar.get (calendar.year); RETOUR SECONDYEAR - Firstyear; } / ** * Calculez l'écart de mois entre deux dates * * @param firstDate * @param secondDate * @return * / public static int getMonthgapofDates (Date FirstDate, Date SecondDate) {if (FirstDate == Null || SecondDate == null) {return 0; } return (int) ((SecondDate.getTime () - FirstDate.getTime ()) / One_Day_mills / 30); } / ** * Calculez si la date actuelle est incluse * * @param datys * @return * / public static boolean isContainCurrent (list <string> dates) {booléen flag = false; SimpledateFormat fmt = new SimpledateFormat (date_format_ymd); Date de date = new Date (); String Datestr = fmt.format (date); for (int i = 0; i <dates.size (); i ++) {if (datestr.equals (dates.get (i))) {flag = true; }} drapeau de retour; } / ** * Calculez la date de la reine de l'heure de la date * * @param date * @param heure * @return * @throws parseException * / public static String getCalculeateToString (String startDate, int time) lève ParseException {String resultDate = null; if (startDate! = null && startDate.Length ()> 0) {date date = formatStringTodate (startDate, date_format_ymd); Calendrier c = calendar.getInstance (); C.SetTime (date); c.set (calendar.day_of_year, heure); date = c.gettime (); resultDate = formatDateToString (date, date_format_ymd); } return resultDate; } / ** * Obtenez la semaine de l'année où la date spécifiée est calculée à partir d'une certaine date * * @param date * @param admitDate * @return * @throws parseException * @ * / public static int [] getyearandweeks (String Date, String admitDate) lance ParseException {Calendar C = Calendar.GetInstance (); C.SetTime (FormatStringTodate (AdmitDate, date_format_ymd)); int time = c.get (calendar.day_of_week); return getweekandyear (date, 0, heure); } / ** * Obtenez la date spécifiée REFDATE, toutes les dates de la semaine avant ou après * @param Refdate * Date de référence * @param Weekoffset * -1: La semaine dernière 0: cette semaine 1: la semaine prochaine * @param startDate * quel jour compte le premier jour de la semaine * @return yyyy-mm-dd date * @throws parseexect * @ * / public static list <String> Getweeks RefDate, int weekoffset, string startDate) lève ParseException {// startDate comme premier jour de la semaine calendrier c = calendar.getInstance (); C.SetTime (formatStringTodate (startDate, date_format_ymd)); int premier jourofweek = c.get (calendar.day_of_week); // Obtenez la semaine correspondante int [] weekAndyear = getweekandyear (Refdate, Weekoffset, FirstDayOfweek); // Obtenez toutes les dates de la semaine correspondante Retour Getweekdays (semaine et enarme [1], semaine etarque [0], premier jour de semaine); } / ** * Obtenez l'intervalle de temps en fonction du point temporel * * @param heures * @return * / public static list <String []> GettimePointByHour (int [] heures) {list <string []> hourpoints = new ArrayList <String []> (); String sbstart = ": 00: 00"; String sbend = ": 59: 59"; for (int i = 0; i <hours.length; i ++) {String [] Times = new String [2]; Times [0] = heures [i] + sbStart; Times [1] = (heures [(i + 1 + heures.Length)% HEURES.Length] - 1) + sbend; hourpoints.add (Times); } Retour HourPoints; } / ** * augmenter ou diminuer le nombre de jours en fonction de la date spécifiée * * @param Date * @param Montant * @return * / public static Date Adddays (date de date, montant int) {return add (date, calendar.day_of_month, montant); } / ** * Augmentez ou diminuez le nombre en fonction de la date spécifiée, type * * @param Date * @param Calendarfield * @param Montant * @return * / public static Date Add (Date Date, int Calendarfield, int Muct) {if (date == Null) {lancez new illégalargumentException ("La date ne doit pas être null"); } Calendrier c = calendar.getInstance (); C.SetTime (date); C.ADD (Calendarfield, montant); retour c.getTime (); } / ** * Obtenez l'heure maximale de la date de la date actuelle 2014-12-21 23:59:59 * @return * / Date statique publique getCurDateWithMaXtime () {Calendar C = calendar.getInSance (); c.set (calendar.hour_of_day, 23); c.set (calendar.minute, 59); C.Set (Calendar.second, 59); retour c.getTime (); } / ** * Obtenez la date de date minimale de la date actuelle2014-12-21 00:00:00 * @return * / Date statique publique getCurDateWithMintime () {Calendar C = calendar.getInSance (); c.set (calendar.hour_of_day, 0); c.set (calendar.minute, 0); c.set (calendar.second, 0); C.Set (calendar.millisecond, 0); retour c.getTime (); }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.