프로젝트 개발에서 날짜는 우리에게 없어서는 안될 부분입니다. 이 기사는 나중에 사용하기 위해 코드 개발 날짜에 대한 몇 가지 일반적인 방법을 요약합니다. 요리는 바로 아래에 제공됩니다.
패키지 com.example.util; import java.text.parseexception; import java.text.simpledateformat; java.util.arraylist 가져 오기; java.util.calendar 가져 오기; import java.util.date; Java.util.list 가져 오기; / *** 공통 날짜 방법** @author*/ public class dateUtils {/ *** 공통 변수*/ public static final String date_format_full = "yyyy-mm-dd hh : mm : ss"; 공개 정적 최종 문자열 date_format_ymd = "yyyy-mm-dd"; 공개 정적 최종 문자열 date_format_hms = "hh : mm : ss"; 공개 정적 최종 문자열 date_format_hm = "hh : mm"; 공개 정적 최종 문자열 date_format_ymdhm = "yyyy-mm-dd hh : mm"; 공개 정적 최종 문자열 date_format_ymdhms = "yyyymmddhhmmss"; 공개 정적 최종 Long One_day_mills = 3600000 * 24; 공개 정적 최종 int week_days = 7; 개인 정적 최종 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 format * @return * @throws parseception * / public stattate (string tomat) simpledateformat sdf = 새로운 simpledateformat (형식); try {return sdf.parse (date); } catch (parseexception ex) {ex.printstacktrace (); 새로운 runtimeexception 던지기 (ex.toString ()); }} / ** * 날짜가 두 기간에 속하는지 여부 * @param time * @param timerange * @return * / public static boolean istimeinrange (날짜 시간, 날짜 [] 타이머 랜지) {return (! time.before [0]) &&! time.fter (timerange [1]); } / ** * 전체 시간에서 분까지 시간 * * @param fulldatest * @return * / public static string getDateTominute (String fullDatest) {return fullDatest == null? null : (fullDatestr.length ()> = datelength? fullDatest.SubString (0, datelength) : fullDatestrest); } /*** 지정된 해의 모든 주를 반환합니다. 목록에는 문자열 [2] 객체 문자열 [0] 일주일의 시작 날짜가 포함되어 있고, 문자열 [1]은 금주의 종료일입니다. * 날짜는 YYYY-MM-DD 형식으로 매년 첫 주에 월요일을 포함해야하며 전체 7 일이어야합니다. * 예 : 2009 년 첫 주는 2009-01-05에서 시작하고 2009-01-11에서 시작됩니다. 월요일은 어느 해입니까? 그렇다면 이번 주에는 몇 주가 포함되어 있습니까? 예를 들어 : 2008-12-29는 2009-01-04가 일요일이므로 이번 주는 2008 년 마지막 주입니다. * * @Param Year * 형식 YYYY, 1900보다 크고 9999 * @return @ */ public static list <String []> getweeksbyyear (마지막 int year) {int weeks = getweeknumofyear (weeknumofyear); list <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 (Year, I, Start); tempweek [1] = getDatefordayofweek (Year, I, End); result.add (tempweek); } 반환 결과; } / ** * 지정된 연도 및 주의 전년도 및 주를 계산하십시오 * * @param year * @param week * @return @ * / public static int [] getLastyEarWeek (int year, int week) {if (주 <= 0) {New New OrgalArgumentException ( "주당 번호는 1보다 작을 수 없습니다"); } int [] result = {주, 연도}; if (주 == 1) {// 전년도 결과 [1] -= 1; // 지난 주 결과 [0] = GetWeeknumofyear (결과 [1]); } else {결과 [0] -= 1; } 반환 결과; } / ** * 다음 [주, 연도] * * @Param Year * @param Week * @return @ * / public static int [] getnextyearweek (int year, int week) {if (week <= 0) {New New OregalArgumentException ( "주간 번호는 1보다 적을 수 없습니다"); } int [] result = {주, 연도}; int Weeks = getweeknumofyear (년); if (주 == 주) {// 내년 결과 [1] += 1; // 첫 주 결과 [0] = 1; } else {결과 [0] += 1; } 반환 결과; } /*** 지정된 해에 몇 주가 있는지 계산하십시오. (월요일에 시작) * * @param year * @return @ */ public static int getweeknumofyear (Final Int Year) {return getweeknumofyear (연도, calendar.monday); } /*** 지정된 해에 몇 주가 있는지 계산하십시오. * * * @param year * yyyy * @return @ */ public static int getweeknumofyear (최종 int 연도, int firstdayofweek) {// 매년 52 주 이상, 최대 53 주가 있습니다. int minweeks = 52; int maxweeks = 53; int result = minweeks; int sindex = 4; 문자열 날짜 = getDatefordayofweek (연도, Maxweeks, 첫날); // 연도가 일치하는지 여부를 결정하기 위해 일치하는지 여부는 53 주가 있음을 의미합니다. if (date.substring (0, sindex) .equals (Year)) {result = maxweeks; } 반환 결과; } public static int getweeksofweekyear (Final Int Year) {calendar cal = calendar.getInstance (); cal.setfirstdayofweek (Calendar.monday); cal.setminimaldaysinfirstweek (Week_days); cal.set (calendar.year, 연도); cal.getweeksinweekyear ()를 반환합니다. } / ** * 지정된 연도의 요일에 해당하는 날짜를 얻습니다. Weekofyear, dayofweek, calendar.monday); } /** * 지정된 연도의 요일에 해당하는 날짜를 얻고, 주일 첫날 (Firstdayofweek) * * @param year * @param weekofyear * @param dayofweek * @param firstdayofweek *를 계산할 요일을 지정합니다. 형식 */ public static string getDatefordayofweek (int 연도, int weekofyear, int dayofweek, int firstdayofweek) {calendar cal = calendar.getInstance (); Cal.setfirstdayofweek (Firstdayofweek); cal.set (calendar.day_of_week, dayofweek); cal.setminimaldaysinfirstweek (Week_days); cal.set (calendar.year, 연도); cal.set (calendar.week_of_year, Weekofyear); return formatdateToString (cal.gettime (), date_format_ymd); } / ** * 주중 지정된 날짜를 가져옵니다 * * @param datetime * @throws parseexception * @ * / public static int getweekofdate (String DateTime) ParseException {calendar cal = calendar.getInstance (); cal.setfirstdayofweek (Calendar.monday); cal.setminimaldaysinfirstweek (Week_days); 날짜 date = FormatStringTodate (dateTime, date_format_ymd); cal.settime (날짜); cal.get (calendar.day_of_week); } / ** * 특정 연도의 특정 주에 모든 날짜를 계산합니다 (월요일부터 주일까지) * * @param fearnum * @param weeknum * @return @ * / public static list <string> getweekdays (int yarnum, int weeknum) {return getweekdays (Yearnum, Weeknum, Calendar.monday); } / ** * 특정 연도 (7 일)의 모든 날짜를 계산하십시오. * @param fearnum * @param weeknum * @return yyyy-mm-dd 형식 날짜 목록 * / public static list <string> getweekdays (int weekofyear, int firstdayofweek) {list <string> dates = new Araylist <string> (); int dayofweek = 첫날 주중; for (int i = 0; i <Week_days; i ++) {dates.add (getDatefordayofWeek (연도, 주간, 주간, 주간 ++, 첫날); } 반환 날짜; } / ** * 이전 주, 이번 주 또는 다음 주에 대상 날짜의 연도 및 주 정보를 받으십시오 * * @param queryDate * @param weekoffset * -1 : 마지막 주 0 : 이번 주 1 : 다음 주 * @Param FirstDayofWeek * 주가 첫날이라는 날 * @thexception * / public int [] getweek int, int week int, Weekoffset, int firstdayofweek) parseexception {date date = formatstringtodate (QueryDate, date_format_ymd); 캘린더 캘린더 = calendar.getInstance (); calendar.settime (날짜); calendar.setfirstdayofweek (Firstdayofweek); Calendar.SetMinimaldaySinfirstweek (Week_days); int 년 = calendar.getweekyear (); int week = calendar.get (calendar.week_of_year); int [] 결과 = {주, 연도}; 스위치 (Weekoffset) {사례 1 : result = getnextyearweek (연도, 주); 부서지다; 사례 -1 : 결과 = getLastyEarweek (연도, 주); 부서지다; 기본값 : 브레이크; } 반환 결과; } / ** * 이틀 동안의 날 수를 계산 * * @param startDate * 시작 날짜 문자열 * @param endDate * 종료 날짜 문자열 * @return * @Throws parseException * / public static int getDaysBetween (String StartDate, String endDate) 쓰레기 parseexception {int daygap = 0; if (startDate! = null && startDate.length ()> 0 && endDate! = null && endDate.length ()> 0) {date end = formatstringTodate (endDate, date_format_ymd); 날짜 시작 = FormatStringTodate (startDate, date_format_ymd); DayGap = GetDaysBetween (시작, 끝); } return daygap; } private static int getDaysbetween (날짜 시작 date, date endDate) {return (int) ((endDate.getTime () - startDate.getTime ()) /one_day_mills); } / ** * 두 날짜 사이의 일수 차이를 계산 * @param startDate * @param endDate * @return * / public static int getDaysGapofDates (날짜 시작 date, date endDate) {int date = 0; if (startDate! = null && endDate! = null) {date = getDaysBetween (startDate, endDate); } 반환 날짜; } / ** * 두 날짜 사이의 연도 간격을 계산 * @param firstdate * @param sec } 캘린더 helpCalendar = calendar.getInstance (); HELPCALENDAR.SETTIME (FirstDate); int firstyear = helpcalendar.get (calendar.year); HELPCALENDAR.SETTIME (SecondDate); int secondyear = helpcalendar.get (calendar.year); 반환 2 세기 - 1 세기; } / ** * 두 날짜 사이의 월 간격을 계산 * @param firstdate * @param sec } return (int) ((secondDate.getTime () - firstDate.getTime ()) / one_day_mills / 30); } / ** * 현재 날짜가 포함되어 있는지 계산 * * @param datys * @return * / public static boolean iscontaincurrent (list <string> 날짜) {boolean flag = false; simpledateformat fmt = new simpledateformat (date_format_ymd); 날짜 = 새 날짜 (); 문자열 dateStr = fmt.format (날짜); for (int i = 0; i <dates.size (); i ++) {if (datest.equals (dates.get (i))) {flag = true; }} 반환 플래그; } / ** * 날짜부터 여왕의 날짜를 계산합니다 * @param 날짜 * @param time * @return * @throws parseexception * / public static string getCalcatedAteString (String StartDate, int Time) ParseException {String resultDate = null; if (startDate! = null && startDate.length ()> 0) {날짜 날짜 = FormatStringTodate (startDate, date_format_ymd); Calendar C = Calendar.getInstance (); C. 세트 타임 (날짜); c.set (calendar.day_of_year, time); 날짜 = c.gettime (); resultDate = FormatDateToString (date, date_format_ymd); } return resultDate; } / ** * 지정된 날짜가 특정 날짜부터 계산되는 연도를 얻습니다. * @param date * @param inthitDate * @return * @throws parseexception * @ * / public static int [] getyearandweeks (문자열 날짜, 문자열 인증) parseexcection {calendar c = calendar.getinstance (); c.settime (formatstringtodate (inditDate, date_format_ymd)); int time = c.get (calendar.day_of_week); getweekandyear (날짜, 0, 시간)를 반환합니다. } / ** * 지정된 날짜 refdate, * @param refdate * 참조 날짜 * @Param WeekOffset * -1 : 이번 주 1 : 다음 주 * @param startDate * 주당 첫날을 계산하는 날 * @return yyyy-mm-dd 날짜 * @thather gettatic list ( * / public list). refdate, int weekoffset, startdate)는 parseexception을 던졌습니다. c.settime (formatstringtodate (startDate, date_format_ymd)); int firstdayofweek = c.get (calendar.day_of_week); // 해당 주를 받기 int [] Weekandyear = getWeekAndyear (refdate, weekoffset, firstdayofweek); // 해당 주간의 모든 날짜를 얻습니다. } / ** * 시점에 따라 시간 간격을 가져옵니다 * @param 시간 * @return * / public static list <string []> getTimePointSbyHour (int [] Hours) {list <string []> HourrayList <string []> (); 문자열 sbstart = ": 00 : 00"; 문자열 sbend = ": 59 : 59"; for (int i = 0; i <hours.length; i ++) {string [] times = new String [2]; 시간 [0] = 시간 [i] + sbstart; 시간 [1] = (시간 [(i + 1 + 시간. Hourpoints.add (시간); } return himpoints; } / ** * 지정된 날짜에 따라 일의 수를 늘리거나 줄이십시오 * @param date * @param molk * @return * / public static date adddays (날짜 날짜, int 금액) {return add (날짜, calendar.day_of_month, mond); } / ** * 지정된 날짜에 따라 숫자를 늘리거나 감소 시키십시오 * * @param 날짜 * @param calendarfield * @param date * / public static date add (날짜 날짜, int calendarfield, int int molk) {if (date == null) {new new negalargumentexception ( "날짜가 없어야한다"); } calendar c = calendar.getInstance (); C. 세트 타임 (날짜); C.add (캘린더 필드, 금액); 반환 c.gettime (); } / ** * 현재 날짜의 최대 날짜 시간을 얻습니다. c.set (calendar.hour_of_day, 23); C. 세트 (Calendar.Minute, 59); C. 세트 (Calendar.second, 59); 반환 c.gettime (); } / ** * 현재 날짜의 최소 날짜 시간을 가져옵니다. c.set (calendar.hour_of_day, 0); c.set (calendar.minute, 0); C.SET (Calendar.second, 0); c.set (calendar.millisecond, 0); 반환 c.gettime (); }}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.