Newer
Older
alarm / src / com / casic / alarm / utils / DateUtils.java
zhout on 2 Mar 2022 3 KB first commit
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;
    }
}