В разработке проекта даты являются незаменимой частью нас. В этой статье будут суммироваться некоторые общие методы дат в разработке кода, чтобы облегчить ваше более позднее использование. Блюда подаются непосредственно ниже:
пакет com.example.util; импортировать java.text.parseexception; импортировать java.text.simpledateformat; импортировать java.util.arraylist; импортировать java.util.calendar; импортировать java.util.date; импортировать java.util.list; / *** Методы общей даты** @author**/ public class dateutils {/ *** Общие переменные*/ 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 Week_days = 7; Private Static Final int datelength = date_format_ymdhm.length (); / ** * Преобразовать дату в форматирование строки * * @param time * @param format * @return */ public Static String formatdateToString (дата времени, формат строки) {SimpleDateFormat sdf = new SimpleDateFormat (format); вернуть sdf.format (время); } / ** * Преобразовать строку в дату формата * (Примечание: когда введенная дата-2014-12-21 12:12, соответствующий формат должен быть yyyy-mm-dd hh: mm * В противном случае исключение будет добавлено) * @param date * @param format * @return * @throhs parseexcept SimpleDateFormat SDF = new SimpleDateFormat (format); try {return sdf.parse (date); } catch (parseexception ex) {ex.printstacktrace (); бросить новое runtimeexception (ex.toString ()); }} / ** * Определите, принадлежит ли дата два периода * @param time * @param timerange * @return * / public static boolean istimeinrange (дата, дата [] timerange) {return (! Time.before (Timerange [0]) &&! Time.after (timerange [1])); } / ** * Время от полного времени до минуты * * @param fulldatestr * @return * / public static String getDateTominute (String fulldatestr) {return fulldatestr == null? null: (fulldatestest.length ()> = datelength? fulldatestr.substring (0, datelength): fulldatestr); } /*** Возврат все недели указанного года. Список содержит строку [2] строки объекта [0] Дата начала недели, а String [1] - дата окончания недели. * Дата находится в формате yyyy-mm-dd в первую неделю каждого года должна включать в понедельник и быть полным семь дней. * Например: первая неделя 2009 года начинается в 2009-01-05 и заканчивается в 2009-01-11. В каком году понедельник? Тогда какая неделя включена на этой неделе? * Например: 2008-12-29-понедельник, 2009-01-04-воскресенье, поэтому эта неделя-последняя неделя 2008 года. * * @Param Год * Формат Yyyy, должен быть больше 1900 и менее 9999 * @return @ */ public Static List <String []> getWeeksbyyear (последний год int) {int weeds = getWeeWneAl (Год); Список <string []> result = new ArrayList <string []> (недели); int start = 1; int end = 7; for (int i = 1; i <= недели; i ++) {string [] tempweek = new String [2]; Tempweek [0] = getDateFordayOfweek (год, я, начало); Tempweek [1] = GetDateFordayOfweek (год, я, конец); Result.Add (Tempweek); } return Result; } / ** * Рассчитайте предыдущий год и неделю указанного года и недели * * @param Год * @param Week * @return @ * / public static int [] getlastyearweek (int Год, int week) {if (неделя <= 0) {Throw new allodalargumentException («недельное число не может быть меньше 1 !!»); } int [] result = {неделя, год}; if (неделя == 1) {// результат предыдущего года [1] -= 1; // на прошлой неделе результат [0] = getWeeknumOfyear (результат [1]); } else {result [0] -= 1; } return Result; } / ** * Следующая [неделя, год] * * @param Год * @param Week * @return @ * / public int [] getNextyearweek (int Год, int Week) {if (неделя <= 0) {бросить new allogalArgumentException («еженедельное число не может быть менее 1 !!»); } int [] result = {неделя, год}; int недели = getweeknumofyear (год); if (неделя == недели) {// результат в следующем году [1] += 1; // результат первой недели [0] = 1; } else {result [0] += 1; } return Result; } /*** Рассчитайте, сколько недель в указанном году. (начинается в понедельник) * * @param Год * @return @ */ public static int getweeknumofyear (окончательный int Год) {return getWeeknumOfyear (год, calendar.monday); } /*** Рассчитайте, сколько недель в указанном году. * * @param Год * yyyy * @return @ */ public static int getweeknumofyear (последний год, int firstdayofweek) {// Есть не менее 52 недель в год и до 53 недель. int minweeks = 52; int maxweeks = 53; int result = minweeks; int sindex = 4; String date = getDatefordayOfweek (год, Maxweeks, первая днем ofweek); // определить, соответствует ли год, если он соответствует, это означает, что их 53 недели. if (date.substring (0, sindex). equals (Год)) {result = maxweeks; } return Result; } public static int getWeeksOfWeekyear (окончательный int -gore) {calendar cal = calendar.getInstance (); Cal.SetFirstDayOfweek (Calendar.Monday); cal.setminimaldaysinfirstweek (Week_days); Cal.Set (Calendar.year, год); вернуть cal.getWeeksinWeekyear (); } /** * Get the date corresponding to the day of the week of the specified year yyyy-MM-dd (starting from Monday) * * @param year * @param weekOfYear * @param dayOfWeek * @return yyyy-MM-dd Date in format @ */ public static String getDateForDayOfWeek(int year, int weekOfYear, int dayOfWeek) { return getDateForDayOfWeek(year, Weekofyear, Dayofweek, Calendar.Monday); } /** * Получите дату, соответствующую дню недели указанного года yyyy-mm-dd, и укажите день недели, чтобы рассчитать первый день недели (первая днем) * * @param Год * @param Weekofeear * @param dayofweek * @param firstdayofweek * Укажите день недели. Format */ public Static String getDateFordAyOfweek (int Год, int weekofyear, int dayofweek, int firstdayofweek) {календарь cal = calendar.getinstance (); Cal.SetFirstDayOfweek (первая деньгайка); cal.set (calendar.day_of_week, dayofweek); cal.setminimaldaysinfirstweek (Week_days); Cal.Set (Calendar.year, год); cal.set (calendar.week_of_year, weekofyear); return formatdateString (cal.getTime (), date_format_ymd); } / ** * Получить указанную дату недели * * @param DateTime * @Throws parseException * @ * / public static int getWeekOfdate (String DateTime) Throws ParseException {calendar cal = calendar.getInstance (); Cal.SetFirstDayOfweek (Calendar.Monday); cal.setminimaldaysinfirstweek (Week_days); Дата дата = FormatStringTodate (dateTime, date_format_ymd); cal.settime (дата); вернуть cal.get (calendar.day_of_week); } / ** * Рассчитайте все даты за определенную неделю определенного года (с понедельника до первого дня недели) * * @param Годовой * @param Weeknum * @return @ * / public static <string> getweekdays (int yearnum, int weeknum) {return getWeekday (Года, неделю, Calendar.donday); } / ** * Рассчитайте все даты за определенную неделю определенного года (семь дней) * * @param yearnum * @param weeknum * @return yyyy-mm-dd list format date * / public static <string> getweekdays (int yeard weekofyear, int firstdayofweek) {list> dates = new restlist <string>;); int dayofweek = первая дневная неделю; for (int i = 0; i <Week_days; i ++) {dates.add (getDatefordayOfweek (год, WeekOfyear, DayOfweek ++, первая дневная сеть)); } даты возврата; } /** * Get the year and week information of the target date for the previous week, this week, or next week* * @param queryDate * Incoming time* @param weekOffset * -1: Last week 0: This week 1: Next week* @param firstDayOfWeek * Which day of the week is the first day* @return * @throws ParseException */ public static int[] getWeekAndYear(String queryDate, int weekOffset, int FirstDayOfweek) Throws ParseException {date Date = formatStringTodate (QueryDate, date_format_ymd); Календарь календарь = календарь.getinstance (); Calendar.SetTime (дата); Calendar.SetFirstDayOfweek (первая деньгайка); Calendar.SetMinimalDaySinFirstWeek (Week_Days); int Год = календарь.getweekyear (); int week = calendar.get (calendar.week_of_year); int [] result = {неделя, год}; Switch (WeekOffSet) {Case 1: Result = GetNexTyearWeek (год, неделя); перерыв; Дело -1: result = getlastyearweek (год, неделя); перерыв; по умолчанию: перерыв; } return Result; } / ** * Рассчитайте количество дней в течение двух дней * * @param startdate * Start Date String * @param enddate * end Date String * @return * @Throws parseException * / public int int getDaysween (String startDate, String endTate) Throws 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 = getDaysween (Start, End); } вернуть Daygap; } private static int getDaysweew Между (date startDate, date enddate) {return (int) ((enddate.getTime () - startDate.getTime ()) /one_day_mills); } / ** * Рассчитайте разницу в количестве дней между двумя датами * @param startdate * @param enddate * @return * / public static int getdaysgapofdates (дата стартовой даты, дата конечно) {int date = 0; if (startDate! = null && endDate! = null) {date = getDaySweeWEN (startDate, endDate); } Дата возврата; } / ** * Рассчитайте разрыв в году между двумя датами * * @param firstdate * @param secondadate * @return * / public static int geteargapofdates (date firstdate, date secondate) {if (firstdate == null || seconddate == null) {return 0; } Календарь helpCalendar = calendar.getInstance (); helpcalendar.settime (FirstDate); int firstyear = helpcalendar.get (calendar.year); helpcalendar.settime (secondadate); int secondyear = helpcalendar.get (calendar.year); Вернуть второй миг - Firstyear; } / ** * Рассчитайте пробел в месяц между двумя датами * * @param FirstDate * @param SecondDate * @return * / public static int getmonthgapofdates (date firstdate, date secondate) {if (firstdate == null || seconddate == null) {return 0; } return (int) ((secondDate.getTime () - firstDate.getTime ()) / one_day_mills / 30); } / ** * Рассчитайте, включена ли текущая дата * * @param datys * @return * / public static boolean iscontaincurrent (list <string> dates) {boolean flag = false; SimpleDateFormat fmt = new SimpleDateFormat (date_format_ymd); Дата дата = новая дата (); String datestr = fmt.format (date); for (int i = 0; i <dates.size (); i ++) {if (dateStr.equals (dates.get (i))) {flag = true; }} вернуть флаг; } / ** * Рассчитайте дату времени королевы времени по дате * * @param date * @param time * @return * @throws parseexception * / public static String getCalculateTeToString (String StartDate, int Time) Throws ParseException {string resultDate = null; if (startDate! = null && startDate.length ()> 0) {date date = formatStringTodate (startDate, date_format_ymd); Календарь c = календарь.getinstance (); c.settime (дата); c.set (calendar.day_of_year, время); date = c.gettime (); resultDate = formatDateToString (date, date_format_ymd); } return resultDate; } / ** * Получите неделю года, когда указанная дата рассчитывается по определенной дате * * @param date * @param admitdate * @return * @throws parseexception * @ * / public static int [] getyearandweeks (строка дата, строка признает) parseexception {calendar c = calendar.getinstance (); c.settime (formatStringTodate (AdmitDate, date_format_ymd)); int time = c.get (calendar.day_of_week); return getWeekandyear (дата, 0, время); } / ** * Получите указанную дату возврат, все даты недели до или после * @param refdate * Справочная дата * @param Weekoffset * -1: на прошлой неделе 0: на этой неделе 1: следующая неделя * @param startdate * Какой день считается первым днем недели * @return yyyy-mm-mmd date * @throws parseexception * @ * @ / public static statice statice-statice-statice-statice-statice-statice-statice-statice-statice-statice-statice-statice-static yyyy-mm-dd * @param refdate, int weekoftset, string startdate) бросает parseexception {// startDate как первый день недели календарь c = calendar.getInstance (); c.settime (formatstringtodate (startDate, date_format_ymd)); int firstdayOfweek = c.get (calendar.day_of_week); // Получить соответствующую неделю int [] WeekAndyear = getWeekandyear (Refdate, Weekoffset, FirstDayOfweek); // Получить все даты соответствующей недели return getWeekDays (WeekAndyear [1], Weekandear [0], FirstDayOfweek); } / ** * Получите интервал времени в соответствии с моментом времени * * @param часов * @return * / public Static List <String []> getTimePointSbyhour (int [] часы) {list <string []> douppoints = new ArrayList <string []> (); String sbstart = ": 00: 00"; String sbend = ": 59: 59"; for (int i = 0; i <tash.length; i ++) {string [] times = new String [2]; раз [0] = часы [i] + sbstart; раз [1] = (часы [(i + 1 + часы. длину) % часов. Length] - 1) + sbend; Hourpoints.Add (время); } вернуть часовые точки; } / ** * Увеличьте или уменьшить количество дней в соответствии с указанной датой * * @param date * @param atum * @return * / public static date adddays (дата дата, int sum) {return add (date, calendar.day_of_month, сумма); } / ** * Увеличьте или уменьшить число в соответствии с указанной датой, введите * * @param date * @param calendarfield * @param сумма * @return * / public Static Date Add (дата даты, int calendarfield, int out) {if (date == null) {thress new allosalargumentException («дата не должна быть нулевой»); } Календарь c = calendar.getInstance (); c.settime (дата); C.Add (Calendarfield, сумма); return c.gettime (); } / ** * Получить максимальное время даты текущей даты 2014-12-21 23:59:59 * @return * / public Static Date getCurdateWithMaxTime () {Календарь C = Calendar.getInstance (); c.set (calendar.hour_of_day, 23); C.Set (Calendar.minute, 59); C.Set (Calendar.second, 59); return c.gettime (); } / ** * Получить минимальное время даты текущей даты 2014-12-21 00:00:00 * @return * / public Static Date getCurdateWithMintime () {календарь c = календарь.getinstance (); c.set (calendar.hour_of_day, 0); C.Set (Calendar.minute, 0); C.Set (Calendar.second, 0); c.set (calendar.millisecond, 0); return c.gettime (); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.