import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created by X240 on 2018/5/18. */ public class DateTool { private final static SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy"); private final static SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd"); private final static SimpleDateFormat sdfDayNoStr = new SimpleDateFormat("yyyyMMdd"); private final static SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private final static Calendar calendar = Calendar.getInstance(); /** * 获取当前年份 YYYY格式 */ public static String getYear(){ return sdfYear.format(new Date()); } /** * 获取当前日期 YYYY-MM-DD格式 */ public static String getDay(){ return sdfDay.format(new Date()); } /** * 获取当前日期 YYYYMMDD格式 */ public static String getDayNoStr(){ return sdfDayNoStr.format(new Date()); } /** * 获取当前时间 YYYY-MM-DD HH:mm:ss格式 */ public static String getTime(){ return sdfTime.format(new Date()); } /** * String转Date * @param s * @return */ public static Date transferDate(String s){ try { return sdfTime.parse(s); } catch (ParseException e) { e.printStackTrace(); } return null; } /*判断日期是一周中的第几天*/ public static int getWeekWhich(String str){ calendar.setTime(transferDate(str)); return calendar.get(Calendar.DAY_OF_WEEK); } /** * 比较两个日期的大小 * @param d1 * @param d2 * @return */ public static int compareDate(String d1,String d2){ try { Date date1 = sdfTime.parse(d1); Date date2 = sdfTime.parse(d2); if (date1.getTime() > date2.getTime()){ System.out.println("d1 在 d2 前"); return 1; }else if(date1.getTime() < date2.getTime()){ System.out.println("d1 在 d2 后"); return -1; }else { return 0; } } catch (ParseException e) { e.printStackTrace(); } return 0; } /** * 计算两个日期相差天数 * @param d1 * @param d2 * @return */ public static int differentDays(String d1,String d2){ try { return (int) ((sdfTime.parse(d1).getTime() - sdfTime.parse(d2).getTime()) / (1000*3600*24)); } catch (ParseException e) { e.printStackTrace(); } return 0; } /** * 获取指定天数前后的日期 * @param day 指定天数 * @param s 加减 * @return */ public static String getNamedDays(int day,String s){ Calendar canlendar = Calendar.getInstance(); if(s.equals("+")){ canlendar.add(Calendar.DATE, day); // 日期减 如果不够减会将月变动 }else { canlendar.add(Calendar.DATE, -day); // 日期减 如果不够减会将月变动 } Date date = canlendar.getTime(); SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateStr = sdfd.format(date); return dateStr; } public static int getMondayPlus() { Calendar cd = Calendar.getInstance(); int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK); if (dayOfWeek == 1) { return -6; } else { return 2 - dayOfWeek; } } /*获得当前周- 周一的日期 */ public static String getCurrentMonday() { int mondayPlus = getMondayPlus(); calendar.add(Calendar.DATE, mondayPlus); Date monday = calendar.getTime(); String preMonday = sdfTime.format(monday); return preMonday; } /** * 获得当前周- 周日 的日期 * @return */ public static String getPreviousSunday() { int mondayPlus = getMondayPlus(); calendar.add(Calendar.DATE, mondayPlus +6); Date monday = calendar.getTime(); String preMonday = sdfTime.format(monday); return preMonday; } /*获得当前月--开始日期 */ public static String getMinMonthDate(String date) { try { calendar.setTime(sdfTime.parse(date)); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); return sdfTime.format(calendar.getTime()); } catch (java.text.ParseException e) { e.printStackTrace(); } return null; } /** * 获得当前月--结束日期 * @param date * @return */ public static String getMaxMonthDate(String date){ try { calendar.setTime(sdfTime.parse(date)); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); return sdfTime.format(calendar.getTime()); } catch (java.text.ParseException e) { e.printStackTrace(); } return null; } }
java日期常用方法处理汇总
猜你喜欢
转载自blog.csdn.net/qq_34479912/article/details/80365873
今日推荐
周排行