学习Java的Date、Calendar日期操作
发布时间:2020-12-14 14:22:17 所属栏目:Java 来源:网络整理
导读:本文介绍了Java开发过程中日期相关操作,分享的代码如下: package jse; import java.io.UnsupportedEncodingException;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.u
本文介绍了Java开发过程中日期相关操作,分享的代码如下: 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时mm分ss秒",Locale.CHINA); // SimpleDateFormat format = new SimpleDateFormat("y年M月d日 E H时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 转 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 转 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(); } /** * 计算两个日期相差年月日 * * @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); } /** * 计算两个日期相差年月日 * * @param Calendar * c1 * @param Calendar * c2 * @return int[]{year,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,day }; } /** * 获取日期所在周的第一天 * * @param c * @return */ public static Calendar getLastDayOfWeek(Calendar c) { // SimpleDateFormat format2 = new SimpleDateFormat("y年M月d日 E H时m分s秒",Locale.CHINA); // System.out.println("当前时间:" + format2.format(c.getTime())); c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY); // System.out.println("周一时间:" + 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); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |