package com.casic.alarm.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; /** * Created by Administrator on 2015/4/16. */ public class DateUtils { public static final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); public static final SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); public static final SimpleDateFormat sdf2 = new SimpleDateFormat("MM/dd/yyyy"); public static final SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static final SimpleDateFormat sdf5 = new SimpleDateFormat("yyyyMMddhhmmssSSS"); public static Calendar getCalendar(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar; } public static int getFistDayOfMonth(Calendar calendar) { calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); return calendar.get(Calendar.DAY_OF_MONTH); } public static int getLastDayOfMonth(Calendar calendar) { calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); return calendar.get(Calendar.DAY_OF_MONTH) + 1; } public static int getYear(Calendar calendar) { return calendar.get(Calendar.YEAR); } public static int getMonth(Calendar calendar) { return calendar.get(Calendar.MONTH); } public static Date getFirstDayOfCurrentMonth() throws ParseException { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH, 0); calendar.set(Calendar.DAY_OF_MONTH, 1); return sdf1.parse(sdf1.format(calendar.getTime())); } public static Date getLastDayOfCurrentMonth() throws ParseException { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); return sdf1.parse(sdf1.format(calendar.getTime())); } public static Date AddDate(Date in, int dateNum) { Calendar calendar = new GregorianCalendar(); calendar.setTime(in); calendar.add(calendar.DATE, dateNum);//把日期往后增加一天.整数往后推,负数往前移动 Date out = calendar.getTime(); //这个时间就是日期往后推一天的结果 return out; } public static int getDateDiff(Date start, Date end) { long date1 = start.getTime(); long date2 = end.getTime(); int days = (int) ((date2 - date1) / (1000 * 60 * 60 * 24)); return days; } public static List<String> getMonths(String year) { List<String> yearList = new ArrayList<>(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //获取前月的第一天 for (int i = 0; i < 12; i++) { Calendar cal_1 = Calendar.getInstance();//获取当前日期 if (StringUtils.isNotBlank(year)) { cal_1.set(Calendar.YEAR, Integer.valueOf(year)); } cal_1.set(Calendar.MONTH, i); cal_1.set(Calendar.DAY_OF_MONTH, 1);//设置为1号,当前日期既为本月第一天 String firstDay = format.format(cal_1.getTime()); Calendar now = Calendar.getInstance(); now.add(Calendar.MONTH, -2); now.setTime(new Date()); if(cal_1.compareTo(now)>=0){ continue; } //获取前月的最后一天 Calendar cale = Calendar.getInstance(); cale.set(Calendar.YEAR, Integer.valueOf(year)); cale.set(Calendar.MONTH, i + 1);//设置为1号,当前日期既为本月第一天 cale.set(Calendar.DAY_OF_MONTH, 0);//设置为1号,当前日期既为本月第一天 String lastDay = format.format(cale.getTime()); yearList.add(firstDay + "~" + lastDay); } return yearList; } }