學(xué)習(xí)Java的Date、Calendar日期操作
更新時(shí)間:2015年07月31日 10:02:59 作者:白小衣
Java開(kāi)發(fā)過(guò)程中避免不了日期相關(guān)操作,這篇文章總結(jié)了一些Date、Calendar的常用方法,需要的朋友可以參考下
本文介紹了Java開(kāi)發(fā)過(guò)程中日期相關(guān)操作,分享的代碼如下:
package jse; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; /** * 常用日期操作 * * @author puck * createDate 2015-07-30 22:54:38 */ public class TestDate { public static void main(String[] args) throws ParseException, UnsupportedEncodingException { Calendar cal = Calendar.getInstance(); // cal.add(Calendar.DAY_OF_MONTH, -48); System.out.println(dateToString(cal)); } /** * 日期格式化 * @param date * @return */ public static String dateToString(Date date) { // SimpleDateFormat format = new SimpleDateFormat("y年MM月dd日 E HH時(shí)mm分ss秒", Locale.CHINA); // SimpleDateFormat format = new SimpleDateFormat("y年M月d日 E H時(shí)m分s秒", Locale.CHINA); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); // example return sdf.format(date); } /** * 日期格式化 * @param date * @return */ public static String dateToString(Calendar cal) { return dateToString(cal.getTime()); } /** * dateString 轉(zhuǎn) Calendar * * @param Date * format:2015-06-16 date * @return Calendar * @throws ParseException */ public static Calendar dateStringToCalendar(String dateStr) throws ParseException { // Calendar cal = Calendar.getInstance(); // cal.clear(); // cal.set(Integer.parseInt(date.substring(0, 4)), Integer.parseInt(date.substring(5, 7)) - 1, // Integer.parseInt(date.substring(8, 10))); // return cal; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse(dateStr); Calendar cal = Calendar.getInstance(); cal.setTime(date); return cal; } /** * dateString 轉(zhuǎn) Date * * @param Date * format:yyyy-MM-dd HH:mm:ss date * @return Calendar * @throws ParseException */ public static Date dateStringToDate(String date) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.parse(date); } /** * Date Convert to Calendar * * @param date * @return */ public static Calendar dateToCalendar(Date date) { Calendar c1 = Calendar.getInstance(); c1.setTime(date); return c1; } /** * Calendar Convert To Date * @param cal * @return */ public static Date CalendarToDate(Calendar cal) { return cal.getTime(); } /** * 計(jì)算兩個(gè)日期相差年月日 * * @param Date * c1 * @param Date * c2 * @return int[]{year, month, day} */ public int[] calculateDifferDay(Date d1, Date d2) { Calendar c1 = Calendar.getInstance(); c1.setTime(d1); Calendar c2 = Calendar.getInstance(); c1.setTime(d2); return calculateDifferDay(c1, c2); } /** * 計(jì)算兩個(gè)日期相差年月日 * * @param Calendar * c1 * @param Calendar * c2 * @return int[]{year, month, day} */ public int[] calculateDifferDay(Calendar c1, Calendar c2) { int[] p1 = { c1.get(Calendar.YEAR), c1.get(Calendar.MONTH), c1.get(Calendar.DAY_OF_MONTH) }; int[] p2 = { c2.get(Calendar.YEAR), c2.get(Calendar.MONTH), c2.get(Calendar.DAY_OF_MONTH) }; System.out.println("p1[0]=" + p1[0] + " p1[1]=" + p1[1] + " p1[2]=" + p1[2]); System.out.println("p2[0]=" + p2[0] + " p2[1]=" + p2[1] + " p2[2]=" + p2[2]); int year = p2[0] - p1[0]; int month = (p2[0] * 12) + p2[1] - ((p1[0] * 12) + p1[1]); int day = (int) ((c2.getTimeInMillis() - c1.getTimeInMillis()) / (24 * 60 * 60 * 1000)); return new int[] { year, month, day }; } /** * 獲取日期所在周的第一天 * * @param c * @return */ public static Calendar getLastDayOfWeek(Calendar c) { // SimpleDateFormat format2 = new SimpleDateFormat("y年M月d日 E H時(shí)m分s秒", Locale.CHINA); // System.out.println("當(dāng)前時(shí)間:" + format2.format(c.getTime())); c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // System.out.println("周一時(shí)間:" + format2.format(c.getTime())); return c; } /** * 日期加減 * @param c * @param day * @return */ public static Calendar addOrDecreaseDay(Calendar c, int day) { c.add(Calendar.DAY_OF_MONTH, day); return c; } /** * 獲取月最后一天 * @param year * @param month * @return */ public static int getLastDayOfMonth(int year, int month) { Calendar c = Calendar.getInstance(); c.set(year, month - 1, 1); return c.getActualMaximum(Calendar.DAY_OF_MONTH); } /** * 獲取月最后一天 * @param cal * @return */ public static int getLastDayOfMonth(Calendar cal) { return cal.getActualMaximum(Calendar.DAY_OF_MONTH); } }
相關(guān)文章
Spring實(shí)戰(zhàn)之注入嵌套Bean操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之注入嵌套Bean操作,結(jié)合實(shí)例形式分析了嵌套Bean相關(guān)配置與使用操作技巧,需要的朋友可以參考下2019-11-11Java實(shí)現(xiàn)圖片驗(yàn)證碼具體代碼
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)圖片驗(yàn)證碼具體代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10springboot與mybatis整合實(shí)例詳解(完美融合)
大家都知道springboot搭建一個(gè)spring框架只需要秒秒鐘。下面通過(guò)實(shí)例代碼給大家介紹一下springboot與mybatis的完美融合,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-09-09spring data簡(jiǎn)化jpa開(kāi)發(fā)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了spring data簡(jiǎn)化jpa開(kāi)發(fā),本文主要講述 Spring Data JPA,希望能夠深入學(xué)習(xí) Spring 和 JPA,有興趣的可以了解下2017-09-09