ZhuDongming
2019-08-15 50e24cdfd75ada4dd6ea5dce74803b7f96e3ba81
src/main/java/com/moral/common/util/ReportTimeFormat.java
@@ -3,6 +3,7 @@
import com.moral.entity.charts.TimePeriod;
import com.moral.entity.charts.TimeUnits;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
@@ -10,13 +11,24 @@
import java.util.List;
public class ReportTimeFormat {
       // 保持mysql format格式和java里format格式一致
       public final  static String YEAR_FORMAT = "yyyy";
       public final  static String MONTH_FORMAT = "yyyy-MM";
       public final  static String DAY_FORMAT = "yyyy-MM-dd";
       public final  static String HOUR_FORMAT = "yyyy-MM-dd/HH";
       public final  static String MINUTE_FORMAT = "yyyy-MM-dd/HH:mm";
       public final  static String YEAR_FORMAT_OF_MYSQL = "%Y";
       public final  static String MONTH_FORMAT_OF_MYSQL = "%Y-%m";
       public final  static String DAY_FORMAT_OF_MYSQL = "%Y-%m-%d";
       public final  static String HOUR_FORMAT_OF_MYSQL = "%Y-%m-%d/%H";
       public final  static String MINUTE_FORMAT_OF_MYSQL = "%Y-%m-%d/%H:%i";
       public static String toMySqlTimeFormat(TimeUnits timeUnits){
           switch (timeUnits){
               case YEAR: return "%Y";
               case MONTH: return "%Y-%m";
               case DAY: return "%Y-%m-%d";
               case HOUR: return "%Y-%m-%d/%H";
               case MINUTE:return "%Y-%m-%d/%H:%i";
               case YEAR: return YEAR_FORMAT_OF_MYSQL;
               case MONTH: return MONTH_FORMAT_OF_MYSQL;
               case DAY: return DAY_FORMAT_OF_MYSQL;
               case HOUR: return HOUR_FORMAT_OF_MYSQL;
               case MINUTE:return MINUTE_FORMAT_OF_MYSQL;
           }
           return "%Y-%m-%d%H:%i:%s";
       }
@@ -30,6 +42,12 @@
           }
           return "%s";
       }
    /**
     * 获取 时间区间数组 从小到大
     * @param timePeriod
     * @return
     */
       public static List<String> makeTimeList(TimePeriod timePeriod){
           Calendar start = Calendar.getInstance();
           start.setTime(timePeriod.getStartTime());
@@ -39,15 +57,15 @@
           String formatStyle = "";
           int timeUnit = 0;
           switch (timePeriod.getTimeUnits()){
               case YEAR: formatStyle ="yyyy";
               case YEAR: formatStyle = YEAR_FORMAT;
                   timeUnit = Calendar.YEAR;break;
               case MONTH: formatStyle ="yyyy-MM";
               case MONTH: formatStyle =MONTH_FORMAT;
                   timeUnit = Calendar.MONTH;break;
               case DAY: formatStyle ="yyyy-MM-dd";
               case DAY: formatStyle =DAY_FORMAT;
                   timeUnit = Calendar.DAY_OF_YEAR;break;
               case HOUR: formatStyle ="yyyy-MM-dd/HH";
               case HOUR: formatStyle =HOUR_FORMAT;
                   timeUnit = Calendar.HOUR;break;
               case MINUTE: formatStyle ="yyyy-MM-dd/HH:mm";
               case MINUTE: formatStyle =MINUTE_FORMAT;
                   timeUnit = Calendar.MINUTE;break;
           }
           do{
@@ -55,9 +73,65 @@
               timeList.add(time);
               start.add(timeUnit,1);
           }
           while (start.getTimeInMillis()<end.getTimeInMillis());
           while (start.getTimeInMillis()<=end.getTimeInMillis());
           return timeList;
       }
    /**
     * 时间计算方法
     * @param date 待计算方法
     * @param timeUnits 处理单位,年,月,日,时,分
     * @param amount 差值,负数为减,正数为加
     * @return
     */
     public static Date dateCalc(Date date,TimeUnits timeUnits,Integer amount) {
         Calendar rightNow = Calendar.getInstance();
         rightNow.setTime(date);
         rightNow.add(toCalendarTimeUnit(timeUnits), amount);
         return rightNow.getTime();
     }
    /**
     * 获取格式化后的时间
     * @param format
     * @return
     * @throws ParseException
     */
     public  static  Date getFormatDate(String format){
         Date date = null;
         try {
             SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
             String dateString = simpleDateFormat.format(new Date());
             date = simpleDateFormat.parse(dateString);
         } catch (Exception ex) {
             ex.printStackTrace();
         }
         return date;
     }
    /**
     * 设置时间
     * @param date
     * @param timeUnits
     * @param value
     * @return
     */
     public static Date dateSetValue(Date date,TimeUnits timeUnits,Integer value) {
         Calendar cal = Calendar.getInstance();
         cal.setTime(date);
         cal.set(toCalendarTimeUnit(timeUnits), value);
         return cal.getTime();
     }
     private static int toCalendarTimeUnit(TimeUnits timeUnits) {
           switch (timeUnits) {
               case YEAR: return  Calendar.YEAR;
               case MONTH: return  Calendar.MONTH;
               case DAY: return  Calendar.DAY_OF_YEAR;
               case HOUR: return  Calendar.HOUR;
               case MINUTE: return  Calendar.MINUTE;
               case SECOND: return  Calendar.SECOND;
               default: return  Calendar.MILLISECOND;
           }
     }
     /**"yyyy-MM-dd hh:mm:ss"
     * 把指定的date类型时间转换为指定格式的字符串
     * @param date