{"id":89,"date":"2021-10-24T17:50:01","date_gmt":"2021-10-24T09:50:01","guid":{"rendered":"https:\/\/www.zhangshuwei.com\/?p=89"},"modified":"2021-10-24T17:50:37","modified_gmt":"2021-10-24T09:50:37","slug":"java%e5%86%99%e7%9a%84%e8%8e%b7%e5%8f%96%e6%97%a5%e6%9c%9f%e5%b7%a5%e5%85%b7%e7%b1%bb","status":"publish","type":"post","link":"https:\/\/www.zhangshuwei.com\/index.php\/2021\/10\/24\/java%e5%86%99%e7%9a%84%e8%8e%b7%e5%8f%96%e6%97%a5%e6%9c%9f%e5%b7%a5%e5%85%b7%e7%b1%bb\/","title":{"rendered":"Java\u5199\u7684\u83b7\u53d6\u65e5\u671f\u5de5\u5177\u7c7b"},"content":{"rendered":"\n<p>1\uff09\u83b7\u53d6\u5f53\u5929\u7684\u5f00\u59cb\u65f6\u95f4<br>2\uff09\u83b7\u53d6\u5f53\u5929\u7684\u7ed3\u675f\u65f6\u95f4<br>3\uff09\u83b7\u53d6\u6628\u5929\u7684\u5f00\u59cb\u65f6\u95f4<br>4\uff09\u83b7\u53d6\u6628\u5929\u7684\u7ed3\u675f\u65f6\u95f4<br>5\uff09\u83b7\u53d6\u660e\u5929\u7684\u5f00\u59cb\u65f6\u95f4<br>6\uff09\u83b7\u53d6\u660e\u5929\u7684\u7ed3\u675f\u65f6\u95f4<br>7\uff09\u83b7\u53d6\u672c\u5468\u7684\u5f00\u59cb\u65f6\u95f4<br>8\uff09\u83b7\u53d6\u672c\u5468\u7684\u7ed3\u675f\u65f6\u95f4<br>9\uff09\u83b7\u53d6\u4e0a\u5468\u7684\u5f00\u59cb\u65f6\u95f4<br>10\uff09\u83b7\u53d6\u4e0a\u5468\u7684\u7ed3\u675f\u65f6\u95f4<br>11\uff09\u83b7\u53d6\u672c\u6708\u7684\u5f00\u59cb\u65f6\u95f4<br>12\uff09\u83b7\u53d6\u672c\u6708\u7684\u7ed3\u675f\u65f6\u95f4<br>13\uff09\u83b7\u53d6\u4e0a\u6708\u7684\u5f00\u59cb\u65f6\u95f4<br>14\uff09\u83b7\u53d6\u4e0a\u6708\u7684\u7ed3\u675f\u65f6\u95f4<br>15\uff09\u83b7\u53d6\u672c\u5e74\u7684\u5f00\u59cb\u65f6\u95f4<br>16\uff09\u83b7\u53d6\u672c\u5e74\u7684\u7ed3\u675f\u65f6\u95f4<br>17\uff09\u83b7\u53d6\u67d0\u4e2a\u65e5\u671f\u7684\u5f00\u59cb\u65f6\u95f4<br>18\uff09\u83b7\u53d6\u67d0\u4e2a\u65e5\u671f\u7684\u7ed3\u675f\u65f6\u95f4<br>19\uff09\u83b7\u53d6\u4eca\u5e74\u662f\u54ea\u4e00\u5e74<br>20\uff09\u83b7\u53d6\u672c\u6708\u662f\u54ea\u4e00\u6708<br>21\uff09\u4e24\u4e2a\u65e5\u671f\u76f8\u51cf\u5f97\u5230\u7684\u5929\u6570<br>22\uff09\u4e24\u4e2a\u65e5\u671f\u76f8\u51cf\u5f97\u5230\u7684\u6beb\u79d2\u6570<br>23\uff09\u83b7\u53d6\u4e24\u4e2a\u65e5\u671f\u4e2d\u7684\u6700\u5927\u65e5\u671f<br>24\uff09\u83b7\u53d6\u4e24\u4e2a\u65e5\u671f\u4e2d\u7684\u6700\u5c0f\u65e5\u671f<br>25\uff09\u8fd4\u56de\u67d0\u6708\u8be5\u5b63\u5ea6\u7684\u7b2c\u4e00\u4e2a\u6708<br>26\uff09\u8fd4\u56de\u67d0\u4e2a\u65e5\u671f\u4e0b\u51e0\u5929\u7684\u65e5\u671f<br>27\uff09\u8fd4\u56de\u67d0\u4e2a\u65e5\u671f\u524d\u51e0\u5929\u7684\u65e5\u671f<br>28\uff09\u83b7\u53d6\u67d0\u5e74\u67d0\u6708\u5230\u67d0\u5e74\u67d0\u6708\u6309\u5929\u7684\u5207\u7247\u65e5\u671f\u96c6\u5408\uff08\u95f4\u9694\u5929\u6570\u7684\u96c6\u5408\uff09<br>29\uff09\u83b7\u53d6\u67d0\u5e74\u67d0\u6708\u6309\u5929\u5207\u7247\u65e5\u671f\u96c6\u5408\uff08\u67d0\u4e2a\u6708\u95f4\u9694\u591a\u5c11\u5929\u7684\u65e5\u671f\u96c6\u5408\uff09<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"java\" class=\"language-java line-numbers\"> import java.sql.Timestamp;\r\n import java.util.ArrayList;\r\n import java.util.Calendar;\r\n import java.util.Date;\r\n import java.util.GregorianCalendar;\r\n import java.util.List;\r\n\r\n public class DateUtils {\r\n\r\n     \/\/\u83b7\u53d6\u5f53\u5929\u7684\u5f00\u59cb\u65f6\u95f4\r\n     public static java.util.Date getDayBegin() {\r\n         Calendar cal = new GregorianCalendar();\r\n         cal.set(Calendar.HOUR_OF_DAY, 0);\r\n         cal.set(Calendar.MINUTE, 0);\r\n         cal.set(Calendar.SECOND, 0);\r\n         cal.set(Calendar.MILLISECOND, 0);\r\n         return cal.getTime();\r\n     }\r\n     \/\/\u83b7\u53d6\u5f53\u5929\u7684\u7ed3\u675f\u65f6\u95f4\r\n     public static java.util.Date getDayEnd() {\r\n         Calendar cal = new GregorianCalendar();\r\n         cal.set(Calendar.HOUR_OF_DAY, 23);\r\n         cal.set(Calendar.MINUTE, 59);\r\n         cal.set(Calendar.SECOND, 59);\r\n         return cal.getTime();\r\n     }\r\n     \/\/\u83b7\u53d6\u6628\u5929\u7684\u5f00\u59cb\u65f6\u95f4\r\n     public static Date getBeginDayOfYesterday() {\r\n         Calendar cal = new GregorianCalendar();\r\n         cal.setTime(getDayBegin());\r\n         cal.add(Calendar.DAY_OF_MONTH, -1);\r\n         return cal.getTime();\r\n     }\r\n     \/\/\u83b7\u53d6\u6628\u5929\u7684\u7ed3\u675f\u65f6\u95f4\r\n     public static Date getEndDayOfYesterDay() {\r\n         Calendar cal = new GregorianCalendar();\r\n         cal.setTime(getDayEnd());\r\n         cal.add(Calendar.DAY_OF_MONTH, -1);\r\n         return cal.getTime();\r\n     }\r\n     \/\/\u83b7\u53d6\u660e\u5929\u7684\u5f00\u59cb\u65f6\u95f4\r\n     public static Date getBeginDayOfTomorrow() {\r\n         Calendar cal = new GregorianCalendar();\r\n         cal.setTime(getDayBegin());\r\n         cal.add(Calendar.DAY_OF_MONTH, 1);\r\n\r\n         return cal.getTime();\r\n     }\r\n     \/\/\u83b7\u53d6\u660e\u5929\u7684\u7ed3\u675f\u65f6\u95f4\r\n     public static Date getEndDayOfTomorrow() {\r\n         Calendar cal = new GregorianCalendar();\r\n         cal.setTime(getDayEnd());\r\n         cal.add(Calendar.DAY_OF_MONTH, 1);\r\n         return cal.getTime();\r\n     }\r\n     \/\/\u83b7\u53d6\u672c\u5468\u7684\u5f00\u59cb\u65f6\u95f4\r\n     @SuppressWarnings(\"unused\")\r\n    public static Date getBeginDayOfWeek() {\r\n         Date date = new Date();\r\n         if (date == null) {\r\n             return null;\r\n         }\r\n         Calendar cal = Calendar.getInstance();\r\n         cal.setTime(date);\r\n         int dayofweek = cal.get(Calendar.DAY_OF_WEEK);\r\n         if (dayofweek == 1) {\r\n             dayofweek += 7;\r\n         }\r\n         cal.add(Calendar.DATE, 2 - dayofweek);\r\n         return getDayStartTime(cal.getTime());\r\n     }\r\n     \/\/\u83b7\u53d6\u672c\u5468\u7684\u7ed3\u675f\u65f6\u95f4\r\n     public static Date getEndDayOfWeek(){\r\n         Calendar cal = Calendar.getInstance();\r\n         cal.setTime(getBeginDayOfWeek());\r\n         cal.add(Calendar.DAY_OF_WEEK, 6);\r\n         Date weekEndSta = cal.getTime();\r\n         return getDayEndTime(weekEndSta);\r\n     }\r\n     \/\/\u83b7\u53d6\u4e0a\u5468\u7684\u5f00\u59cb\u65f6\u95f4\r\n     @SuppressWarnings(\"unused\")\r\n     public static Date getBeginDayOfLastWeek() {\r\n         Date date = new Date();\r\n         if (date == null) {\r\n             return null;\r\n         }\r\n         Calendar cal = Calendar.getInstance();\r\n         cal.setTime(date);\r\n         int dayofweek = cal.get(Calendar.DAY_OF_WEEK);\r\n         if (dayofweek == 1) {\r\n             dayofweek += 7;\r\n         }\r\n         cal.add(Calendar.DATE, 2 - dayofweek - 7);\r\n         return getDayStartTime(cal.getTime());\r\n     }\r\n     \/\/\u83b7\u53d6\u4e0a\u5468\u7684\u7ed3\u675f\u65f6\u95f4\r\n     public static Date getEndDayOfLastWeek(){\r\n         Calendar cal = Calendar.getInstance();\r\n         cal.setTime(getBeginDayOfLastWeek());\r\n         cal.add(Calendar.DAY_OF_WEEK, 6);\r\n         Date weekEndSta = cal.getTime();\r\n         return getDayEndTime(weekEndSta);\r\n     }\r\n     \/\/\u83b7\u53d6\u672c\u6708\u7684\u5f00\u59cb\u65f6\u95f4\r\n      public static Date getBeginDayOfMonth() {\r\n             Calendar calendar = Calendar.getInstance();\r\n             calendar.set(getNowYear(), getNowMonth() - 1, 1);\r\n             return getDayStartTime(calendar.getTime());\r\n         }\r\n     \/\/\u83b7\u53d6\u672c\u6708\u7684\u7ed3\u675f\u65f6\u95f4\r\n      public static Date getEndDayOfMonth() {\r\n             Calendar calendar = Calendar.getInstance();\r\n             calendar.set(getNowYear(), getNowMonth() - 1, 1);\r\n             int day = calendar.getActualMaximum(5);\r\n             calendar.set(getNowYear(), getNowMonth() - 1, day);\r\n             return getDayEndTime(calendar.getTime());\r\n         }\r\n      \/\/\u83b7\u53d6\u4e0a\u6708\u7684\u5f00\u59cb\u65f6\u95f4\r\n      public static Date getBeginDayOfLastMonth() {\r\n          Calendar calendar = Calendar.getInstance();\r\n          calendar.set(getNowYear(), getNowMonth() - 2, 1);\r\n          return getDayStartTime(calendar.getTime());\r\n      }\r\n      \/\/\u83b7\u53d6\u4e0a\u6708\u7684\u7ed3\u675f\u65f6\u95f4\r\n      public static Date getEndDayOfLastMonth() {\r\n          Calendar calendar = Calendar.getInstance();\r\n          calendar.set(getNowYear(), getNowMonth() - 2, 1);\r\n          int day = calendar.getActualMaximum(5);\r\n          calendar.set(getNowYear(), getNowMonth() - 2, day);\r\n          return getDayEndTime(calendar.getTime());\r\n      }\r\n      \/\/\u83b7\u53d6\u672c\u5e74\u7684\u5f00\u59cb\u65f6\u95f4\r\n      public static java.util.Date getBeginDayOfYear() {\r\n             Calendar cal = Calendar.getInstance();\r\n             cal.set(Calendar.YEAR, getNowYear());\r\n             \/\/ cal.set\r\n             cal.set(Calendar.MONTH, Calendar.JANUARY);\r\n             cal.set(Calendar.DATE, 1);\r\n\r\n             return getDayStartTime(cal.getTime());\r\n         }\r\n      \/\/\u83b7\u53d6\u672c\u5e74\u7684\u7ed3\u675f\u65f6\u95f4\r\n      public static java.util.Date getEndDayOfYear() {\r\n             Calendar cal = Calendar.getInstance();\r\n             cal.set(Calendar.YEAR, getNowYear());\r\n             cal.set(Calendar.MONTH, Calendar.DECEMBER);\r\n             cal.set(Calendar.DATE, 31);\r\n             return getDayEndTime(cal.getTime());\r\n         }\r\n     \/\/\u83b7\u53d6\u67d0\u4e2a\u65e5\u671f\u7684\u5f00\u59cb\u65f6\u95f4\r\n     public static Timestamp getDayStartTime(Date d) {\r\n         Calendar calendar = Calendar.getInstance();\r\n         if(null != d) calendar.setTime(d);\r\n         calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),    calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);\r\n         calendar.set(Calendar.MILLISECOND, 0);\r\n         return new Timestamp(calendar.getTimeInMillis());\r\n     }\r\n     \/\/\u83b7\u53d6\u67d0\u4e2a\u65e5\u671f\u7684\u7ed3\u675f\u65f6\u95f4\r\n     public static Timestamp getDayEndTime(Date d) {\r\n         Calendar calendar = Calendar.getInstance();\r\n         if(null != d) calendar.setTime(d);\r\n         calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),    calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);\r\n         calendar.set(Calendar.MILLISECOND, 999);\r\n         return new Timestamp(calendar.getTimeInMillis());\r\n     }\r\n     \/\/\u83b7\u53d6\u4eca\u5e74\u662f\u54ea\u4e00\u5e74\r\n      public static Integer getNowYear() {\r\n              Date date = new Date();\r\n             GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();\r\n             gc.setTime(date);\r\n             return Integer.valueOf(gc.get(1));\r\n         }\r\n      \/\/\u83b7\u53d6\u672c\u6708\u662f\u54ea\u4e00\u6708\r\n      public static int getNowMonth() {\r\n              Date date = new Date();\r\n             GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();\r\n             gc.setTime(date);\r\n             return gc.get(2) + 1;\r\n         }\r\n      \/\/\u4e24\u4e2a\u65e5\u671f\u76f8\u51cf\u5f97\u5230\u7684\u5929\u6570\r\n      public static int getDiffDays(Date beginDate, Date endDate) {\r\n\r\n             if (beginDate == null || endDate == null) {\r\n                 throw new IllegalArgumentException(\"getDiffDays param is null!\");\r\n             }\r\n\r\n             long diff = (endDate.getTime() - beginDate.getTime())\r\n                     \/ (1000 * 60 * 60 * 24);\r\n\r\n             int days = new Long(diff).intValue();\r\n\r\n             return days;\r\n         }\r\n     \/\/\u4e24\u4e2a\u65e5\u671f\u76f8\u51cf\u5f97\u5230\u7684\u6beb\u79d2\u6570\r\n      public static long dateDiff(Date beginDate, Date endDate) {\r\n             long date1ms = beginDate.getTime();\r\n             long date2ms = endDate.getTime();\r\n             return date2ms - date1ms;\r\n         }\r\n      \/\/\u83b7\u53d6\u4e24\u4e2a\u65e5\u671f\u4e2d\u7684\u6700\u5927\u65e5\u671f\r\n      public static Date max(Date beginDate, Date endDate) {\r\n             if (beginDate == null) {\r\n                 return endDate;\r\n             }\r\n             if (endDate == null) {\r\n                 return beginDate;\r\n             }\r\n             if (beginDate.after(endDate)) {\r\n                 return beginDate;\r\n             }\r\n             return endDate;\r\n         }\r\n      \/\/\u83b7\u53d6\u4e24\u4e2a\u65e5\u671f\u4e2d\u7684\u6700\u5c0f\u65e5\u671f\r\n      public static Date min(Date beginDate, Date endDate) {\r\n             if (beginDate == null) {\r\n                 return endDate;\r\n             }\r\n             if (endDate == null) {\r\n                 return beginDate;\r\n             }\r\n             if (beginDate.after(endDate)) {\r\n                 return endDate;\r\n             }\r\n             return beginDate;\r\n         }\r\n      \/\/\u8fd4\u56de\u67d0\u6708\u8be5\u5b63\u5ea6\u7684\u7b2c\u4e00\u4e2a\u6708\r\n      public static Date getFirstSeasonDate(Date date) {\r\n              final int[] SEASON = { 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4 };\r\n             Calendar cal = Calendar.getInstance();\r\n             cal.setTime(date);\r\n             int sean = SEASON[cal.get(Calendar.MONTH)];\r\n             cal.set(Calendar.MONTH, sean * 3 - 3);\r\n             return cal.getTime();\r\n         }\r\n      \/\/\u8fd4\u56de\u67d0\u4e2a\u65e5\u671f\u4e0b\u51e0\u5929\u7684\u65e5\u671f\r\n      public static Date getNextDay(Date date, int i) {\r\n             Calendar cal = new GregorianCalendar();\r\n             cal.setTime(date);\r\n             cal.set(Calendar.DATE, cal.get(Calendar.DATE) + i);\r\n             return cal.getTime();\r\n         }\r\n      \/\/\u8fd4\u56de\u67d0\u4e2a\u65e5\u671f\u524d\u51e0\u5929\u7684\u65e5\u671f\r\n      public static Date getFrontDay(Date date, int i) {\r\n             Calendar cal = new GregorianCalendar();\r\n             cal.setTime(date);\r\n             cal.set(Calendar.DATE, cal.get(Calendar.DATE) - i);\r\n             return cal.getTime();\r\n         }\r\n      \/\/\u83b7\u53d6\u67d0\u5e74\u67d0\u6708\u5230\u67d0\u5e74\u67d0\u6708\u6309\u5929\u7684\u5207\u7247\u65e5\u671f\u96c6\u5408\uff08\u95f4\u9694\u5929\u6570\u7684\u96c6\u5408\uff09\r\n      @SuppressWarnings({ \"rawtypes\", \"unchecked\" })\r\n    public static List getTimeList(int beginYear, int beginMonth, int endYear,\r\n                 int endMonth, int k) {\r\n             List list = new ArrayList();\r\n             if (beginYear == endYear) {\r\n                 for (int j = beginMonth; j &lt;= endMonth; j++) {\r\n                     list.add(getTimeList(beginYear, j, k));\r\n\r\n                 }\r\n             } else {\r\n                 {\r\n                     for (int j = beginMonth; j &lt; 12; j++) {\r\n                         list.add(getTimeList(beginYear, j, k));\r\n                     }\r\n\r\n                     for (int i = beginYear + 1; i &lt; endYear; i++) {\r\n                         for (int j = 0; j &lt; 12; j++) {\r\n                             list.add(getTimeList(i, j, k));\r\n                         }\r\n                     }\r\n                     for (int j = 0; j &lt;= endMonth; j++) {\r\n                         list.add(getTimeList(endYear, j, k));\r\n                     }\r\n                 }\r\n             }\r\n             return list;\r\n         }\r\n      \/\/\u83b7\u53d6\u67d0\u5e74\u67d0\u6708\u6309\u5929\u5207\u7247\u65e5\u671f\u96c6\u5408\uff08\u67d0\u4e2a\u6708\u95f4\u9694\u591a\u5c11\u5929\u7684\u65e5\u671f\u96c6\u5408\uff09\r\n      @SuppressWarnings({ \"unchecked\", \"rawtypes\" })\r\n    public static List getTimeList(int beginYear, int beginMonth, int k) {\r\n             List list = new ArrayList();\r\n             Calendar begincal = new GregorianCalendar(beginYear, beginMonth, 1);\r\n             int max = begincal.getActualMaximum(Calendar.DATE);\r\n             for (int i = 1; i &lt; max; i = i + k) {\r\n                 list.add(begincal.getTime());\r\n                 begincal.add(Calendar.DATE, k);\r\n             }\r\n             begincal = new GregorianCalendar(beginYear, beginMonth, max);\r\n             list.add(begincal.getTime());\r\n             return list;\r\n         }\r\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1\uff09\u83b7\u53d6\u5f53\u5929\u7684\u5f00\u59cb\u65f6\u95f42\uff09\u83b7\u53d6\u5f53\u5929\u7684\u7ed3\u675f\u65f6\u95f43\uff09\u83b7\u53d6\u6628\u5929\u7684\u5f00\u59cb\u65f6\u95f44\uff09\u83b7\u53d6\u6628\u5929\u7684\u7ed3\u675f\u65f6\u95f45\uff09\u83b7\u53d6\u660e\u5929\u7684\u5f00\u59cb\u65f6\u95f4 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[30,28],"class_list":["post-89","post","type-post","status-publish","format-standard","hentry","category-servers","tag-date","tag-java"],"_links":{"self":[{"href":"https:\/\/www.zhangshuwei.com\/index.php\/wp-json\/wp\/v2\/posts\/89","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhangshuwei.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zhangshuwei.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhangshuwei.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zhangshuwei.com\/index.php\/wp-json\/wp\/v2\/comments?post=89"}],"version-history":[{"count":2,"href":"https:\/\/www.zhangshuwei.com\/index.php\/wp-json\/wp\/v2\/posts\/89\/revisions"}],"predecessor-version":[{"id":91,"href":"https:\/\/www.zhangshuwei.com\/index.php\/wp-json\/wp\/v2\/posts\/89\/revisions\/91"}],"wp:attachment":[{"href":"https:\/\/www.zhangshuwei.com\/index.php\/wp-json\/wp\/v2\/media?parent=89"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zhangshuwei.com\/index.php\/wp-json\/wp\/v2\/categories?post=89"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhangshuwei.com\/index.php\/wp-json\/wp\/v2\/tags?post=89"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}