| New file | 
 |  |  | 
 |  |  | package com.dy.common.util; | 
 |  |  |  | 
 |  |  | import java.util.*; | 
 |  |  | import java.text.SimpleDateFormat; | 
 |  |  | import java.util.GregorianCalendar ; | 
 |  |  |  | 
 |  |  | @SuppressWarnings("unused") | 
 |  |  | public class DateTime { | 
 |  |  | 	 | 
 |  |  |    private static String yearPreFix = null ;//年度前两位 | 
 |  |  | 	 | 
 |  |  |    //得到年度前两位 | 
 |  |  |    public static String yearPreFix(){ | 
 |  |  |       if(yearPreFix == null){ | 
 |  |  |          yearPreFix = yyyy().substring(0,2) ; | 
 |  |  |       } | 
 |  |  |       return yearPreFix ; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static long getTime(){ | 
 |  |  |       return new Date().getTime() ; | 
 |  |  |    } | 
 |  |  |    public static long getTime(String y_M_d_H_m_s) throws Exception{ | 
 |  |  |       return dateFrom_yyyy_MM_dd_HH_mm_ss(y_M_d_H_m_s).getTime() ; | 
 |  |  |    } | 
 |  |  |    public static Date getDate(Long time){ | 
 |  |  |       return new Date(time) ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |    public static Date startOfDay(int year, int month, int day){ | 
 |  |  |       Date dt = null ; | 
 |  |  |       try{ | 
 |  |  |          dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(year + "-" + (month < 10 ? ("0" + month) : month) + "-" + (day < 10 ? ("0" + day) : day) + " 00:00:00"); | 
 |  |  |       }catch (Exception e){ | 
 |  |  |          e.printStackTrace(); | 
 |  |  |       } | 
 |  |  |       return dt  ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static Date endOfDay(int year, int month, int day){ | 
 |  |  |       Date dt = null ; | 
 |  |  |       try{ | 
 |  |  |          dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(year + "-" + (month < 10 ? ("0" + month) : month) + "-" + (day < 10 ? ("0" + day) : day) + " 23:59:59"); | 
 |  |  |       }catch (Exception e){ | 
 |  |  |          e.printStackTrace(); | 
 |  |  |       } | 
 |  |  |       return dt  ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static int endDayOfMonth(int year, int month){ | 
 |  |  |       if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){ | 
 |  |  |          return 31 ; | 
 |  |  |       }else{ | 
 |  |  |          if(month == 2){ | 
 |  |  |             if(DateTime.isLeapYear(year)){ | 
 |  |  |                return 29 ; | 
 |  |  |             }else{ | 
 |  |  |                return 28 ; | 
 |  |  |             } | 
 |  |  |          }else{ | 
 |  |  |             return 30 ; | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    public static String yyyy() { | 
 |  |  |       return new SimpleDateFormat("yyyy", Locale.CHINA).format(new Date(System.currentTimeMillis())); | 
 |  |  |    } | 
 |  |  |    public static String yyyy(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyy", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyy(String yyyy) { | 
 |  |  |       return new SimpleDateFormat("yyyy", Locale.CHINA).format(yyyy); | 
 |  |  |    } | 
 |  |  |    public static String yy() { | 
 |  |  |       return new SimpleDateFormat("yy", Locale.CHINA).format(new Date(System.currentTimeMillis())); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static String MM() { | 
 |  |  |       return new SimpleDateFormat("MM", Locale.CHINA).format(new Date(System.currentTimeMillis())); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static String dd() { | 
 |  |  |       return new SimpleDateFormat("dd", Locale.CHINA).format(new Date(System.currentTimeMillis())); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static String HH() { | 
 |  |  |       return new SimpleDateFormat("HH", Locale.CHINA).format(new Date(System.currentTimeMillis())); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static String mm() { | 
 |  |  |       return new SimpleDateFormat("mm", Locale.CHINA).format(new Date(System.currentTimeMillis())); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static String ss() { | 
 |  |  |       return new SimpleDateFormat("ss", Locale.CHINA).format(new Date(System.currentTimeMillis())); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static String week(){ | 
 |  |  |       return new SimpleDateFormat("EE", Locale.CHINA).format(System.currentTimeMillis()); 	 | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |    ////////////////////////////////////////////////////////////// | 
 |  |  |    public static String MM_dd() { | 
 |  |  |       return new SimpleDateFormat("MM-dd", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String MMdd() { | 
 |  |  |       return new SimpleDateFormat("MMdd", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |    ////////////////////////////////////////////////////////////// | 
 |  |  |  | 
 |  |  |    public static String yyyy_MM_dd_HH_mm_ss() { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyyy_MM_dd_HH_mm() { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyyy_MM_dd_HH() { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd HH", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyyy_MM_dd() { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyyy_MM() { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    public static String yyyy_MM_dd_HH_mm_ss(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyy_MM_dd_HH_mm(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyy_MM_dd_HH(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd HH", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyy_MM_dd(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyy_MM(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    public static String yyyy_MM_dd_HH_mm_ss(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyy_MM_dd_HH_mm(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyy_MM_dd_HH(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd HH", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyy_MM_dd(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyy_MM(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static String yyyyMMddHHmmss() { | 
 |  |  |       return new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMddHHmm() { | 
 |  |  |       return new SimpleDateFormat("yyyyMMddHHmm", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMddHH() { | 
 |  |  |       return new SimpleDateFormat("yyyyMMddHH", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMdd() { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMM() { | 
 |  |  |       return new SimpleDateFormat("yyyyMM", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static String yyyyMMddHHmmss(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMddHHmm(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMddHHmm", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMddHH(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMddHH", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMdd(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMM(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMM", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static String yyyyMMddHHmmss(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMddHHmm(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMddHHmm", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMddHH(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMddHH", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMdd(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMM(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMM", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    ////////////////////////////////////////////////////////////// | 
 |  |  |  | 
 |  |  |    public static String yy_MM_dd_HH_mm_ss() { | 
 |  |  |       return new SimpleDateFormat("yy-MM-dd HH:mm:ss", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yy_MM_dd_HH_mm() { | 
 |  |  |       return new SimpleDateFormat("yy-MM-dd HH:mm", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yy_MM_dd_HH() { | 
 |  |  |       return new SimpleDateFormat("yy-MM-dd HH", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yy_MM_dd() { | 
 |  |  |       return new SimpleDateFormat("yy-MM-dd", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yy_MM() { | 
 |  |  |       return new SimpleDateFormat("yy-MM", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    public static String yy_MM_dd_HH_mm_ss(Date date) { | 
 |  |  |       return new SimpleDateFormat("yy-MM-dd HH:mm:ss", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yy_MM_dd_HH_mm(Date date) { | 
 |  |  |       return new SimpleDateFormat("yy-MM-dd HH:mm", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yy_MM_dd_HH(Date date) { | 
 |  |  |       return new SimpleDateFormat("yy-MM-dd HH", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yy_MM_dd(Date date) { | 
 |  |  |       return new SimpleDateFormat("yy-MM-dd", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yy_MM(Date date) { | 
 |  |  |       return new SimpleDateFormat("yy-MM", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    public static String yy_MM_dd_HH_mm_ss(String date) { | 
 |  |  |       return new SimpleDateFormat("yy-MM-dd HH:mm:ss", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yy_MM_dd_HH_mm(String date) { | 
 |  |  |       return new SimpleDateFormat("yy-MM-dd HH:mm", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yy_MM_dd_HH(String date) { | 
 |  |  |       return new SimpleDateFormat("yy-MM-dd HH", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yy_MM_dd(String date) { | 
 |  |  |       return new SimpleDateFormat("yy-MM-dd", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yy_MM(String date) { | 
 |  |  |       return new SimpleDateFormat("yy-MM", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static String yyMMddhhmmss() { | 
 |  |  |       return new SimpleDateFormat("yyMMddHHmmss", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyMMddhhmm() { | 
 |  |  |       return new SimpleDateFormat("yyMMddHHmm", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyMMddhh() { | 
 |  |  |       return new SimpleDateFormat("yyMMddHH", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyMMdd() { | 
 |  |  |       return new SimpleDateFormat("yyMMdd", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyMM() { | 
 |  |  |       return new SimpleDateFormat("yyMM", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  | 	 | 
 |  |  |    public static String yyMMddhhmmssSSS() { | 
 |  |  |       return new SimpleDateFormat("yyMMddHHmmssSSS", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static String yyMMddhhmmss(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyMMddHHmmss", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyMMddhhmm(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyMMddHHmm", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyMMddhh(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyMMddHH", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyMMdd(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyMMdd", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyMM(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyMM", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static String yyMMddhhmmss(String date) { | 
 |  |  |       return new SimpleDateFormat("yyMMddHHmmss", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyMMddhhmm(String date) { | 
 |  |  |       return new SimpleDateFormat("yyMMddHHmm", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyMMddhh(String date) { | 
 |  |  |       return new SimpleDateFormat("yyMMddHH", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyMMdd(String date) { | 
 |  |  |       return new SimpleDateFormat("yyMMdd", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyMM(String date) { | 
 |  |  |       return new SimpleDateFormat("yyMM", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |  | 
 |  |  |    ////////////////////////////////////////////////////////////// | 
 |  |  |  | 
 |  |  |    public static String yyyyMMdd_HH_mm_ss() { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd HH:mm:ss", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMdd_HH_mm() { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd HH:mm", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMdd_HH() { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd HH", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static String yyyyMMdd_HH_mm_ss(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd HH:mm:ss", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMdd_HH_mm(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd HH:mm", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMdd_HH(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd HH", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    public static String yyyyMMdd_HH_mm_ss(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd HH:mm:ss", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMdd_HH_mm(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd HH:mm", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyyyMMdd_HH(String date) { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd HH", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  | 	 | 
 |  |  |  | 
 |  |  |    ////////////////////////////////////////////////////////////// | 
 |  |  |  | 
 |  |  |    public static String yyMMdd_HH_mm_ss() { | 
 |  |  |       return new SimpleDateFormat("yyMMdd HH:mm:ss", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyMMdd_HH_mm() { | 
 |  |  |       return new SimpleDateFormat("yyMMdd HH:mm", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String yyMMdd_HH() { | 
 |  |  |       return new SimpleDateFormat("yyMMdd HH", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static String yyMMdd_HH_mm_ss(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyMMdd HH:mm:ss", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyMMdd_HH_mm(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyMMdd HH:mm", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyMMdd_HH(Date date) { | 
 |  |  |       return new SimpleDateFormat("yyMMdd HH", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    public static String yyMMdd_HH_mm_ss(String date) { | 
 |  |  |       return new SimpleDateFormat("yyMMdd HH:mm:ss", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyMMdd_HH_mm(String date) { | 
 |  |  |       return new SimpleDateFormat("yyMMdd HH:mm", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  |    public static String yyMMdd_HH(String date) { | 
 |  |  |       return new SimpleDateFormat("yyMMdd HH", Locale.CHINA).format(date); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    /////////////////////////////////////////	 | 
 |  |  | 	 | 
 |  |  | 	 | 
 |  |  |    public static String dd_hh_mm_ss() { | 
 |  |  |       return new SimpleDateFormat("ddHH:mm:ss", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String ddhhmmss() { | 
 |  |  |       return new SimpleDateFormat("ddHHmmss", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static String hh_mm_ss() { | 
 |  |  |       return new SimpleDateFormat("HH:mm:ss", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String hhmmss() { | 
 |  |  |       return new SimpleDateFormat("HHmmss", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String hh_mm() { | 
 |  |  |       return new SimpleDateFormat("HH:mm", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  |    public static String hhmm() { | 
 |  |  |       return new SimpleDateFormat("HHmm", Locale.CHINA).format(System.currentTimeMillis()); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |     ////////////////////////////////////////////////////////////////////////// | 
 |  |  | 	 | 
 |  |  |    public static Date dateFrom_yyyy_MM_dd_HH_mm_ss(String yyyy_MM_dd_HH_mm_ss) throws Exception { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss); | 
 |  |  |    } | 
 |  |  |    public static Date dateFrom_yyyy_MM_dd_HH_mm(String yyyy_MM_dd_HH_mm) throws Exception { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.CHINA).parse(yyyy_MM_dd_HH_mm); | 
 |  |  |    } | 
 |  |  |    public static Date dateFrom_yyyy_MM_dd_HH(String yyyy_MM_dd_HH) throws Exception { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd HH", Locale.CHINA).parse(yyyy_MM_dd_HH); | 
 |  |  |    } | 
 |  |  |    public static Date dateFrom_yyyy_MM_dd(String yyyy_MM_dd) throws Exception { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(yyyy_MM_dd); | 
 |  |  |    } | 
 |  |  |    public static Date dateFrom_yyyy_MM_dd1(String yyyy_MM_dd_HH_mm_ss) throws Exception { | 
 |  |  |       return new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static Date dateFrom_yyyyMMddHHmmss(String yyyyMMddHHmmss) throws Exception { | 
 |  |  |       return new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).parse(yyyyMMddHHmmss); | 
 |  |  |    } | 
 |  |  |    public static Date dateFrom_yyyyMMddHHmm(String yyyyMMddHHmm) throws Exception { | 
 |  |  |       return new SimpleDateFormat("yyyyMMddHHmm", Locale.CHINA).parse(yyyyMMddHHmm); | 
 |  |  |    } | 
 |  |  |    public static Date dateFrom_yyyyMMddHH(String yyyyMMddHH) throws Exception { | 
 |  |  |       return new SimpleDateFormat("yyyyMMddHH", Locale.CHINA).parse(yyyyMMddHH); | 
 |  |  |    } | 
 |  |  |    public static Date dateFrom_yyyyMMdd(String yyyyMMdd) throws Exception { | 
 |  |  |       return new SimpleDateFormat("yyyyMMdd", Locale.CHINA).parse(yyyyMMdd); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static Date dateFrom_yyMMddHHmmss(String yyMMddHHmmss) throws Exception { | 
 |  |  |       return new SimpleDateFormat("yyMMddHHmmss", Locale.CHINA).parse(yyMMddHHmmss); | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |     ////////////////////////////////////////////////////////////////////////// | 
 |  |  |  | 
 |  |  |    //星期一:Monday 星期二:Tuesday 星期三:Wednesday星期四:Thursday星期五:Friday星期六:Saturday星期日:Sunday  | 
 |  |  |    //返回 Mon, Tue Wed Thu Fri Sat Sun | 
 |  |  |    public static String week_Str(){ | 
 |  |  |       return new SimpleDateFormat("EE", Locale.CHINA).format(System.currentTimeMillis()); 	 | 
 |  |  |    } | 
 |  |  |    public static Integer week_Int(){ | 
 |  |  |       String str = week_Str() ; | 
 |  |  |       if(str.startsWith("周")){ | 
 |  |  |          return switch (str) { | 
 |  |  |             case "周一" -> 1; | 
 |  |  |             case "周二" -> 2; | 
 |  |  |             case "周三" -> 3; | 
 |  |  |             case "周四" -> 4; | 
 |  |  |             case "周五" -> 5; | 
 |  |  |             case "周六" -> 6; | 
 |  |  |             case "周七" -> 0;//根据协议要求星期天为0 | 
 |  |  |             default -> 0; | 
 |  |  |          }; | 
 |  |  |       }else{ | 
 |  |  |          return switch (str) { | 
 |  |  |             case "Mon" -> 1; | 
 |  |  |             case "Tue" -> 2; | 
 |  |  |             case "Wed" -> 3; | 
 |  |  |             case "Thu" -> 4; | 
 |  |  |             case "Fri" -> 5; | 
 |  |  |             case "Sat" -> 6; | 
 |  |  |             case "Sun" -> 0;//根据协议要求星期天为0 | 
 |  |  |             default -> 0; | 
 |  |  |          }; | 
 |  |  |       } | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 两个日期间相差秒钟数 | 
 |  |  |     */ | 
 |  |  |    public static long secondsBetweenyyyy_MM_dd_HH_mm_ss(String yyyy_MM_dd_HH_mm_ss_1 , String yyyy_MM_dd_HH_mm_ss_2)throws Exception{ | 
 |  |  |       return ((dateFrom_yyyy_MM_dd_HH_mm_ss(yyyy_MM_dd_HH_mm_ss_1).getTime()-dateFrom_yyyy_MM_dd_HH_mm_ss(yyyy_MM_dd_HH_mm_ss_2).getTime())/1000); | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 两个日期间相差秒钟数 | 
 |  |  |     */ | 
 |  |  |    public static long secondsBetweenyyyyMMddHHmmss(String yyyyMMddHHmmss_1 , String yyyyMMddHHmmss_2)throws Exception{ | 
 |  |  |       return ((dateFrom_yyyyMMddHHmmss(yyyyMMddHHmmss_1).getTime()-dateFrom_yyyyMMddHHmmss(yyyyMMddHHmmss_2).getTime())/1000) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 两个日期间相差分钟数 | 
 |  |  |     */ | 
 |  |  |    public static long minutesBetweenyyyy_MM_dd_HH_mm(String yyyy_MM_dd_HH_mm_1 , String yyyy_MM_dd_HH_mm_2)throws Exception{ | 
 |  |  |       return ((dateFrom_yyyy_MM_dd_HH_mm(yyyy_MM_dd_HH_mm_1).getTime()-dateFrom_yyyy_MM_dd_HH_mm(yyyy_MM_dd_HH_mm_2).getTime())/1000)/60 ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 两个日期间相差分钟数 | 
 |  |  |     */ | 
 |  |  |    public static long minutesBetweenyyyyMMddHHmm(String yyyyMMddHHmm_1 , String yyyyMMddHHmm_2)throws Exception{ | 
 |  |  |       return ((dateFrom_yyyyMMddHHmm(yyyyMMddHHmm_1).getTime()-dateFrom_yyyyMMddHHmm(yyyyMMddHHmm_2).getTime())/1000)/60 ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 两个日期相差小时数 | 
 |  |  |     */ | 
 |  |  |    public static long hoursBetweenyyyy_MM_dd_HH(String yyyy_MM_dd_HH_1 , String yyyy_MM_dd_HH_2)throws Exception{ | 
 |  |  |       return (((dateFrom_yyyy_MM_dd_HH(yyyy_MM_dd_HH_1).getTime()-dateFrom_yyyy_MM_dd_HH(yyyy_MM_dd_HH_2).getTime())/1000)/60)/60 ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 两个日期相差小时数 | 
 |  |  |     */ | 
 |  |  |    public static long hoursBetweenyyyyMMddHH(String yyyyMMddHH_1 , String yyyyMMddHH_2)throws Exception{ | 
 |  |  |       return (((dateFrom_yyyy_MM_dd_HH(yyyyMMddHH_1).getTime()-dateFrom_yyyy_MM_dd_HH(yyyyMMddHH_2).getTime())/1000)/60)/60 ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 两个日期相差天数 | 
 |  |  |     */ | 
 |  |  |    public static long daysBetweenyyyy_MM_dd(String yyyy_MM_dd_1 , String yyyy_MM_dd_2)throws Exception{ | 
 |  |  |       return ((((dateFrom_yyyy_MM_dd(yyyy_MM_dd_1).getTime()-dateFrom_yyyy_MM_dd(yyyy_MM_dd_2).getTime())/1000)/60)/60)/24 ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 两个日期相差天数 | 
 |  |  |     */ | 
 |  |  |    public static long daysBetweenyyyy_MM_dd(Date yyyy_MM_dd_1 , Date yyyy_MM_dd_2)throws Exception{ | 
 |  |  |       return ((((yyyy_MM_dd_1.getTime() - yyyy_MM_dd_2.getTime())/1000)/60)/60)/24 ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 两个日期相差天数 | 
 |  |  |     */ | 
 |  |  |    public static long daysBetweenyyyyMMdd(String yyyyMMdd_1 , String yyyyMMdd_2)throws Exception{ | 
 |  |  |       return ((((dateFrom_yyyy_MM_dd(yyyyMMdd_1).getTime()-dateFrom_yyyy_MM_dd(yyyyMMdd_2).getTime())/1000)/60)/60)/24 ; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static Date dateFrom_MM_dd(String MM_dd) throws Exception { | 
 |  |  |       return new SimpleDateFormat(MM_dd, Locale.CHINA).parse(MM_dd); | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 两个日期相差天数 | 
 |  |  |     */ | 
 |  |  |    public static long daysBetweenMM_dd(String MM_dd_1 , String MM_dd_2)throws Exception{ | 
 |  |  |       return ((((dateFrom_MM_dd(MM_dd_1).getTime()-dateFrom_MM_dd(MM_dd_2).getTime())/1000)/60)/60)/24 ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    ////////////////////////////////////////////////////////////////////////// | 
 |  |  |  | 
 |  |  |    /** | 
 |  |  |     * 字符串型日期(2024-12)转成年月日数组 | 
 |  |  |     * @param yyyy_MM 年月日 | 
 |  |  |     * @return 年月日数组 | 
 |  |  |     */ | 
 |  |  |    public static int[] yyyy_MM_ymdGroup(String yyyy_MM){ | 
 |  |  |       int y = Integer.parseInt(yyyy_MM.substring(0 , 4)) ; | 
 |  |  |       int m = Integer.parseInt(yyyy_MM.substring(5 , 7)) ; | 
 |  |  |       return new int[]{y,m} ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    /** | 
 |  |  |     * 字符串型日期(2009-09-10)转成年月日数组 | 
 |  |  |     * @param yyyy_MM_DD 年月日 | 
 |  |  |     * @return 年月日数组 | 
 |  |  |     */ | 
 |  |  |    public static int[] yyyy_MM_dd_2_ymdGroup(String yyyy_MM_DD){ | 
 |  |  |       int y = Integer.parseInt(yyyy_MM_DD.substring(0 , 4)) ; | 
 |  |  |       int m = Integer.parseInt(yyyy_MM_DD.substring(5 , 7)) ; | 
 |  |  |       int d = Integer.parseInt(yyyy_MM_DD.substring(8 , 10)) ; | 
 |  |  |       return new int[]{y,m,d} ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 字符串型日期(2009-09-10 00)转成年月日时数组 | 
 |  |  |     * @param yyyy_MM_DD_HH 年月日时 | 
 |  |  |     * @return 年月日时数组 | 
 |  |  |     */ | 
 |  |  |    public static int[] yyyy_MM_dd_HH_2_ymdhGroup(String yyyy_MM_DD_HH){ | 
 |  |  |       int y = Integer.parseInt(yyyy_MM_DD_HH.substring(0 , 4)) ; | 
 |  |  |       int m = Integer.parseInt(yyyy_MM_DD_HH.substring(5 , 7)) ; | 
 |  |  |       int d = Integer.parseInt(yyyy_MM_DD_HH.substring(8 , 10)) ; | 
 |  |  |       int h = Integer.parseInt(yyyy_MM_DD_HH.substring(11 , 13)) ; | 
 |  |  |       return new int[]{y,m,d,h} ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 字符串型日期(2009-09-10 00:00)转成年月日时分数组 | 
 |  |  |     * @param yyyy_MM_DD_HH_MM  年月日时分 | 
 |  |  |     * @return 年月日时分数组 | 
 |  |  |     */ | 
 |  |  |    public static int[] yyyy_MM_dd_HH_MM_2_ymdhmGroup(String yyyy_MM_DD_HH_MM){ | 
 |  |  |       int y = Integer.parseInt(yyyy_MM_DD_HH_MM.substring(0 , 4)) ; | 
 |  |  |       int m = Integer.parseInt(yyyy_MM_DD_HH_MM.substring(5 , 7)) ; | 
 |  |  |       int d = Integer.parseInt(yyyy_MM_DD_HH_MM.substring(8 , 10)) ; | 
 |  |  |       int h = Integer.parseInt(yyyy_MM_DD_HH_MM.substring(11 , 13)) ; | 
 |  |  |       int mm = Integer.parseInt(yyyy_MM_DD_HH_MM.substring(14 , 16)) ; | 
 |  |  |       return new int[]{y,m,d,h,mm} ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 字符串型日期(2009-09-10 00:00)转成年月日时分秒数组 | 
 |  |  |     * @param yyyy_MM_DD_HH_MM_SS 年月日时分秒 | 
 |  |  |     * @return 年月日时分秒数组 | 
 |  |  |     */ | 
 |  |  |    public static int[] yyyy_MM_dd_HH_MM_SS_2_ymdhmsGroup(String yyyy_MM_DD_HH_MM_SS){ | 
 |  |  |       int y = Integer.parseInt(yyyy_MM_DD_HH_MM_SS.substring(0 , 4)) ; | 
 |  |  |       int m = Integer.parseInt(yyyy_MM_DD_HH_MM_SS.substring(5 , 7)) ; | 
 |  |  |       int d = Integer.parseInt(yyyy_MM_DD_HH_MM_SS.substring(8 , 10)) ; | 
 |  |  |       int h = Integer.parseInt(yyyy_MM_DD_HH_MM_SS.substring(11 , 13)) ; | 
 |  |  |       int mm = Integer.parseInt(yyyy_MM_DD_HH_MM_SS.substring(14 , 16)) ; | 
 |  |  |       int s = Integer.parseInt(yyyy_MM_DD_HH_MM_SS.substring(17 , 19)) ; | 
 |  |  |       return new int[]{y,m,d,h,mm,s} ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    /** | 
 |  |  |     * 年月日时分秒数组转字符串 | 
 |  |  |     * @param yymdhms 年月日时分秒数组 | 
 |  |  |     * @return 年月日时分秒符串 | 
 |  |  |     */ | 
 |  |  |    public static String dateGroupTo_yyyy_MM_dd_HH_mm_ss(int[] yymdhms){ | 
 |  |  |       if(yymdhms[0] > 2000){ | 
 |  |  |          return  yymdhms[0] + "-" +  | 
 |  |  |                (yymdhms[1] < 10 ? ("0" + yymdhms[1]) : yymdhms[1]) + "-" +  | 
 |  |  |                (yymdhms[2] < 10 ? ("0" + yymdhms[2]) : yymdhms[2]) + " " +  | 
 |  |  |                (yymdhms[3] < 10 ? ("0" + yymdhms[3]) : yymdhms[3]) + ":" +  | 
 |  |  |                (yymdhms[4] < 10 ? ("0" + yymdhms[4]) : yymdhms[4]) + ":" +  | 
 |  |  |                (yymdhms[5] < 10 ? ("0" + yymdhms[5]) : yymdhms[5]) ;  | 
 |  |  |       }else{ | 
 |  |  |          return  Integer.parseInt(yyyy())/100 + yymdhms[0] + "-" +  | 
 |  |  |                (yymdhms[1] < 10 ? ("0" + yymdhms[1]) : yymdhms[1]) + "-" +  | 
 |  |  |                (yymdhms[2] < 10 ? ("0" + yymdhms[2]) : yymdhms[2]) + " " +  | 
 |  |  |                (yymdhms[3] < 10 ? ("0" + yymdhms[3]) : yymdhms[3]) + ":" +  | 
 |  |  |                (yymdhms[4] < 10 ? ("0" + yymdhms[4]) : yymdhms[4]) + ":" +  | 
 |  |  |                (yymdhms[5] < 10 ? ("0" + yymdhms[5]) : yymdhms[5]) ;  | 
 |  |  |  | 
 |  |  |       } | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public static String dateGroupTo_yyyy_MM_dd_HH_mm_ss(Integer[] yymdhms){ | 
 |  |  |       if(yymdhms[0] > 2000){ | 
 |  |  |          return  yymdhms[0] + "-" +  | 
 |  |  |                (yymdhms[1] < 10 ? ("0" + yymdhms[1]) : yymdhms[1]) + "-" +  | 
 |  |  |                (yymdhms[2] < 10 ? ("0" + yymdhms[2]) : yymdhms[2]) + " " +  | 
 |  |  |                (yymdhms[3] < 10 ? ("0" + yymdhms[3]) : yymdhms[3]) + ":" +  | 
 |  |  |                (yymdhms[4] < 10 ? ("0" + yymdhms[4]) : yymdhms[4]) + ":" +  | 
 |  |  |                (yymdhms[5] < 10 ? ("0" + yymdhms[5]) : yymdhms[5]) ;  | 
 |  |  |       }else{ | 
 |  |  |          return  Integer.parseInt(yyyy())/100 + yymdhms[0] + "-" +  | 
 |  |  |                (yymdhms[1] < 10 ? ("0" + yymdhms[1]) : yymdhms[1]) + "-" +  | 
 |  |  |                (yymdhms[2] < 10 ? ("0" + yymdhms[2]) : yymdhms[2]) + " " +  | 
 |  |  |                (yymdhms[3] < 10 ? ("0" + yymdhms[3]) : yymdhms[3]) + ":" +  | 
 |  |  |                (yymdhms[4] < 10 ? ("0" + yymdhms[4]) : yymdhms[4]) + ":" +  | 
 |  |  |                (yymdhms[5] < 10 ? ("0" + yymdhms[5]) : yymdhms[5]) ;  | 
 |  |  |  | 
 |  |  |       } | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |    ////////////////////////////////////////////////////////////////////////// | 
 |  |  |    /** | 
 |  |  |     * 得到过去x分钟对应的日期 | 
 |  |  |     * @param xMin X分钟 | 
 |  |  |     * @return 毫秒 | 
 |  |  |     */ | 
 |  |  |    public static Long lastXMinuteTime(int xMin)  { | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.add(Calendar.MINUTE, xMin<=0?xMin:-xMin); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return date.getTime() ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    /** | 
 |  |  |     * 得到过去x小时对应的日期 | 
 |  |  |     * @param yyyy_MM_dd_HH 指定年月日时 | 
 |  |  |     * @param xhour x小时 X小时 | 
 |  |  |     * @return 年月日时 | 
 |  |  |     */ | 
 |  |  |    public static String lastXHour_yyyy_MM_dd_HH(String yyyy_MM_dd_HH , int xhour) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyy-MM-dd HH", Locale.CHINA).parse(yyyy_MM_dd_HH); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyy_MM_dd_HH(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到过去x小时对应的日期 | 
 |  |  |     * @param yyyy_MM_dd_HH_mm  指定年月日时分 | 
 |  |  |     * @param xhour x小时  X小时 | 
 |  |  |     * @return  年月日时 | 
 |  |  |     */ | 
 |  |  |    public static String lastXHour_yyyy_MM_dd_HH_mm(String yyyy_MM_dd_HH_mm , int xhour) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.CHINA).parse(yyyy_MM_dd_HH_mm); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyy_MM_dd_HH_mm(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到过去x小时对应的日期 | 
 |  |  |     * @param yyyy_MM_dd_HH_mm_ss 指定年月日时分秒 | 
 |  |  |     * @param xhour x小时  X小时 | 
 |  |  |     * @return 年月日时分秒 | 
 |  |  |     */ | 
 |  |  |    public static String lastXHour_yyyy_MM_dd_HH_mm_ss(String yyyy_MM_dd_HH_mm_ss , int xhour) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyy_MM_dd_HH_mm_ss(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到过去x小时对应的日期 | 
 |  |  |     * @param yyyyMMddHH  指定年月日时 | 
 |  |  |     * @param xhour x小时 x小时 | 
 |  |  |     * @return  年月日时分秒 | 
 |  |  |     */ | 
 |  |  |    public static String lastXHour_yyyyMMddHH(String yyyyMMddHH , int xhour) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyyMMddHH", Locale.CHINA).parse(yyyyMMddHH); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyyMMddHH(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到过去x小时对应的日期 | 
 |  |  |     * @param yyyyMMddHHmm  指定年月日时分 | 
 |  |  |     * @param xhour x小时 x小时 | 
 |  |  |     * @return 年月日时分 | 
 |  |  |     */ | 
 |  |  |    public static String lastXHour_yyyyMMddHHmm(String yyyyMMddHHmm , int xhour) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyyMMddHHmm", Locale.CHINA).parse(yyyyMMddHHmm); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyyMMddHHmm(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到前x小时对应的日期 | 
 |  |  |     * @param yyyyMMddHHmmss  指定年月日时分秒 | 
 |  |  |     * @param xhour x小时 x小时 | 
 |  |  |     * @return 年月日时分秒 | 
 |  |  |     */ | 
 |  |  |    public static String lastXHour_yyyyMMddHHmmss(String yyyyMMddHHmmss , int xhour) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).parse(yyyyMMddHHmmss); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyyMMddHHmmss(date) ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    /** | 
 |  |  |     * 得到x小时前对应的日期(年月日时) | 
 |  |  |     * @param xhour x小时 x小时 | 
 |  |  |     * @return 年月日时 | 
 |  |  |     */ | 
 |  |  |    public static String lastXHour_yyyy_MM_dd_HH(int xhour){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy_MM_dd_HH(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到x小时前对应的日期(年月日时分) | 
 |  |  |     * @param xhour x小时 x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastXHour_yyyy_MM_dd_HH_mm(int xhour){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy_MM_dd_HH_mm(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到x小时前对应的日期(年月日时分秒) | 
 |  |  |     * @param xhour x小时 x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastXHour_yyyy_MM_dd_HH_mm_ss(int xhour){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy_MM_dd_HH_mm_ss(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到x小时前对应的日期(年月日时) | 
 |  |  |     * @param xhour x小时 x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastXHour_yyyyMMddHH(int xhour){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyyMMddHH(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到x小时前对应的日期(年月日时分) | 
 |  |  |     * @param xhour x小时 x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastXHour_yyyyMMddHHmm(int xhour){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyyMMddHHmm(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到x小时前对应的日期(年月日时分秒) | 
 |  |  |     * @param xhour x小时 x小时 | 
 |  |  |     * @return  转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastXHour_yyyyMMddHHmmss(int xhour){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyyMMddHHmmss(date) ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    ////////////////////////////////////////////////////////////////// | 
 |  |  |    /** | 
 |  |  |     * 得到将来x分钟对应的日期 | 
 |  |  |     * @param yyyy_MM_dd_HH_mm_ss 指定年月日时分秒 | 
 |  |  |     * @param xminute x分钟 | 
 |  |  |     * @return  转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXMinute_yyyy_MM_dd_HH_mm_ss(String yyyy_MM_dd_HH_mm_ss , int xminute) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.MINUTE, xminute<=0?-xminute:xminute ); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyy_MM_dd_HH_mm_ss(date) ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    /** | 
 |  |  |     * 得到将来x小时对应的日期 | 
 |  |  |     * @param yyyy_MM_dd_HH  指定年月日时 | 
 |  |  |     * @param xhour x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXHour_yyyy_MM_dd_HH(String yyyy_MM_dd_HH , int xhour) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyy-MM-dd HH", Locale.CHINA).parse(yyyy_MM_dd_HH); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour ); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyy_MM_dd_HH(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到将来x小时对应的日期 | 
 |  |  |     * @param yyyy_MM_dd_HH_mm  指定年月日时分 | 
 |  |  |     * @param xhour x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXHour_yyyy_MM_dd_HH_mm(String yyyy_MM_dd_HH_mm , int xhour) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.CHINA).parse(yyyy_MM_dd_HH_mm); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyy_MM_dd_HH_mm(date) ; | 
 |  |  |    }	 | 
 |  |  |    /** | 
 |  |  |     * 得到将来x小时对应的日期 | 
 |  |  |     * @param yyyy_MM_dd_HH_mm_ss  指定年月日时分秒 | 
 |  |  |     * @param xhour x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXHour_yyyy_MM_dd_HH_mm_ss(String yyyy_MM_dd_HH_mm_ss , int xhour) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyy_MM_dd_HH_mm_ss(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到将来x小时对应的日期 | 
 |  |  |     * @param yyyyMMddHH 指定年月日时 | 
 |  |  |     * @param xhour x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXHour_yyyyMMddHH(String yyyyMMddHH , int xhour) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyyMMddHH", Locale.CHINA).parse(yyyyMMddHH); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyyMMddHH(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到将来x小时对应的日期 | 
 |  |  |     * @param yyyyMMddHHmm 指定年月日时分 | 
 |  |  |     * @param xhour x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXHour_yyyyMMddHHmm(String yyyyMMddHHmm , int xhour) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyyMMddHHmm", Locale.CHINA).parse(yyyyMMddHHmm); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyyMMddHHmm(date) ; | 
 |  |  |    }   /** | 
 |  |  |     * 得到将来x小时对应的日期 | 
 |  |  |     * @param yyyyMMddHHmmss 指定年月日时分秒 | 
 |  |  |     * @param xhour x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXHour_yyyyMMddHHmmss(String yyyyMMddHHmmss , int xhour) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).parse(yyyyMMddHHmmss); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyyMMddHHmmss(date) ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |    /** | 
 |  |  |     * 得到x小时后对应的日期(年月日时) | 
 |  |  |     * @param xhour x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXHour_yyyy_MM_dd_HH(int xhour){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy_MM_dd_HH(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到x小时后对应的日期(年月日时分) | 
 |  |  |     * @param xhour x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXHour_yyyy_MM_dd_HH_mm(int xhour){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy_MM_dd_HH_mm(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到x小时后对应的日期(年月日时分秒) | 
 |  |  |     * @param xhour x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXHour_yyyy_MM_dd_HH_mm_ss(int xhour){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy_MM_dd_HH_mm_ss(date) ; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |  | 
 |  |  |    /** | 
 |  |  |     * 得到x小时后对应的日期(年月日时) | 
 |  |  |     * @param xhour x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXHour_yyyyMMddHH(int xhour){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyyMMddHH(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到x小时后对应的日期(年月日时分) | 
 |  |  |     * @param xhour x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXHour_yyyyMMddHHmm(int xhour){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyyMMddHHmm(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到x小时后对应的日期(年月日时分秒) | 
 |  |  |     * @param xhour x小时 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXHour_yyyyMMddHHmmss(int xhour){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyyMMddHHmmss(date) ; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  | 	 | 
 |  |  | 	 | 
 |  |  |    ////////////////////////////////////////////////////////////////////////// | 
 |  |  |  | 
 |  |  |    /** | 
 |  |  |     * 得到过去x天日期 | 
 |  |  |     * @param yyyy_MM_dd 指定年月日 | 
 |  |  |     * @param xday x日 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastXDay_yyyy_MM_dd(String yyyy_MM_dd , int xday) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(yyyy_MM_dd); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyy_MM_dd(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到过去x天日期 | 
 |  |  |     * @param yyyyMMdd 指定年月日 | 
 |  |  |     * @param xday x日 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastXDay_yyyyMMdd(String yyyyMMdd , int xday) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyyMMdd", Locale.CHINA).parse(yyyyMMdd); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyyMMdd(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到过去x天日期 | 
 |  |  |     * @param xday x日 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastXDay_yyyy_MM_dd(int xday){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy_MM_dd(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到过去x天日期 | 
 |  |  |     * @param xday x日 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastXDay_yyyy_MM_dd_HH_ss(int xday){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy_MM_dd_HH_mm_ss(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到过去x天日期 | 
 |  |  |     * @param xday x日 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastXDay_yyyyMMdd(int xday){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyyMMdd(date) ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    //////////////////////////////////////////////////////////// | 
 |  |  | 	 | 
 |  |  |  | 
 |  |  |    /** | 
 |  |  |     * 得到将来x天日期 | 
 |  |  |     * @param yyyy_MM_dd 指定年月日 | 
 |  |  |     * @param xday x日 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXDay_yyyy_MM_dd(String yyyy_MM_dd , int xday) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(yyyy_MM_dd); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.DAY_OF_YEAR, xday<=0?-xday:xday); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyy_MM_dd(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到将来x天日期 | 
 |  |  |     * @param yyyyMMdd 指定年月日 | 
 |  |  |     * @param xday x日 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXDay_yyyyMMdd(String yyyyMMdd , int xday) throws Exception { | 
 |  |  |       Date d = new SimpleDateFormat("yyyyMMdd", Locale.CHINA).parse(yyyyMMdd); | 
 |  |  |       Calendar cal = Calendar.getInstance();   | 
 |  |  |       cal.setTime(d);			 | 
 |  |  |       cal.add(Calendar.DAY_OF_YEAR, xday<=0?-xday:xday); | 
 |  |  |       Date date = cal.getTime() ; | 
 |  |  |       return DateTime.yyyyMMdd(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到将来x天日期 | 
 |  |  |     * @param xday x日 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXDay_yyyy_MM_dd(int xday){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.DAY_OF_YEAR, xday<=0?-xday:xday); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy_MM_dd(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到将来x天日期 | 
 |  |  |     * @param xday x日 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String nextXDay_yyyyMMdd(int xday){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.DAY_OF_YEAR, xday<=0?-xday:xday); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyyMMdd(date) ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    //////////////////////////////////////////////////////////// | 
 |  |  | 	 | 
 |  |  |  | 
 |  |  |    /** | 
 |  |  |     * 得到昨天 | 
 |  |  |     * @param thisYear 年 | 
 |  |  |     * @param thisMonth 月 | 
 |  |  |     * @param thisDay 日 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String yesterday_yyyy_MM_dd(int thisYear , int thisMonth , int thisDay){ | 
 |  |  |       int yesterday ; | 
 |  |  |       int lastYear ; | 
 |  |  |       int lastMonth ; | 
 |  |  |       if(thisDay == 1){ | 
 |  |  |          if(thisMonth == 1 || thisMonth == 2 || thisMonth == 4 || thisMonth == 6 || thisMonth == 8 || thisMonth == 9 || thisMonth == 11 ){ | 
 |  |  |             yesterday = 31 ; | 
 |  |  |          }else if( thisMonth == 3){ | 
 |  |  |             if(isLeapYear(thisYear)){ | 
 |  |  |                yesterday = 29 ; | 
 |  |  |             }else{ | 
 |  |  |                yesterday = 28 ; | 
 |  |  |             } | 
 |  |  |          }else { | 
 |  |  |             yesterday = 30 ; | 
 |  |  |          } | 
 |  |  | 			 | 
 |  |  |          if(thisMonth == 1){ | 
 |  |  |             lastYear = thisYear - 1 ; | 
 |  |  |             lastMonth = 12 ; | 
 |  |  |          }else{ | 
 |  |  |             lastYear = thisYear ; | 
 |  |  |             lastMonth = thisMonth - 1 ;  | 
 |  |  |          } | 
 |  |  |       }else{ | 
 |  |  |          yesterday = thisDay - 1 ; | 
 |  |  |          lastMonth = thisMonth ;  | 
 |  |  |          lastYear = thisYear ; | 
 |  |  |       } | 
 |  |  |       //当RTU的日期未初始化时,会出现thisDay=0,这时thisDay-1 = -1 | 
 |  |  |       if(yesterday < 0){ | 
 |  |  |          yesterday = 0 ; | 
 |  |  |       } | 
 |  |  |       if(lastMonth < 0){ | 
 |  |  |          lastMonth = 0 ; | 
 |  |  |       } | 
 |  |  |       if(lastYear < 0){ | 
 |  |  |          lastYear = 0 ; | 
 |  |  |       } | 
 |  |  |       return lastYear + "-"  | 
 |  |  |          + (lastMonth > 9?(lastMonth + ""):("0" + lastMonth)) + "-"  | 
 |  |  |          + (yesterday > 9?(yesterday + ""):("0" + yesterday)) ; | 
 |  |  | 		 | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |  | 
 |  |  |    /** | 
 |  |  |     * 得到昨天 | 
 |  |  |     * @param thisYear 年 | 
 |  |  |     * @param thisMonth 月 | 
 |  |  |     * @param thisDay 日 | 
 |  |  |     * @param thisHour 时 | 
 |  |  |     * @param thisMinute 分 | 
 |  |  |     * @param thisSecond 秒 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String yesterday_yyyy_MM_dd_hh_mm_ss(int thisYear , int thisMonth , int thisDay, int thisHour, int thisMinute, int thisSecond){ | 
 |  |  |       int yesterday; | 
 |  |  |       int lastYear; | 
 |  |  |       int lastMonth; | 
 |  |  |       if(thisDay == 1){ | 
 |  |  |          if(thisMonth == 1 || thisMonth == 2 || thisMonth == 4 || thisMonth == 6 || thisMonth == 8 || thisMonth == 9 || thisMonth == 11 ){ | 
 |  |  |             yesterday = 31 ; | 
 |  |  |          }else if( thisMonth == 3){ | 
 |  |  |             if(isLeapYear(thisYear)){ | 
 |  |  |                yesterday = 29 ; | 
 |  |  |             }else{ | 
 |  |  |                yesterday = 28 ; | 
 |  |  |             } | 
 |  |  |          }else { | 
 |  |  |             yesterday = 30 ; | 
 |  |  |          } | 
 |  |  | 			 | 
 |  |  |          if(thisMonth == 1){ | 
 |  |  |             lastYear = thisYear - 1 ; | 
 |  |  |             lastMonth = 12 ; | 
 |  |  |          }else{ | 
 |  |  |             lastYear = thisYear ; | 
 |  |  |             lastMonth = thisMonth - 1 ;  | 
 |  |  |          } | 
 |  |  |       }else{ | 
 |  |  |          yesterday = thisDay - 1 ; | 
 |  |  |          lastMonth = thisMonth ;  | 
 |  |  |          lastYear = thisYear ; | 
 |  |  |       } | 
 |  |  |       return lastYear + "-"  | 
 |  |  |          + (lastMonth > 9?(lastMonth + ""):("0" + lastMonth)) + "-"  | 
 |  |  |          + (yesterday > 9?(yesterday + ""):("0" + yesterday)) + " "  | 
 |  |  |          + (thisHour > 9?(thisHour + ""):("0" + thisHour)) + ":"  | 
 |  |  |          + (thisMinute > 9?(thisMinute + ""):("0" + thisMinute)) + ":"  | 
 |  |  |          + (thisSecond > 9?(thisSecond + ""):("0" + thisSecond)); | 
 |  |  | 		 | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    /** | 
 |  |  |     * 得到明天 | 
 |  |  |     * @param thisYear 年 | 
 |  |  |     * @param thisMonth 月 | 
 |  |  |     * @param thisDay 日 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String tomorrow_yyyy_MM_dd(int thisYear , int thisMonth , int thisDay){ | 
 |  |  |       int tomorrow = 0 ; | 
 |  |  |       int year = 0 ; | 
 |  |  |       int month = 0 ; | 
 |  |  |       if(thisDay == 31){ | 
 |  |  |          if(thisMonth == 1 || thisMonth == 3 || thisMonth == 5 || thisMonth == 7 || thisMonth == 8 || thisMonth == 10){ | 
 |  |  |             year = thisYear ; | 
 |  |  |             month = thisMonth + 1 ; | 
 |  |  |             tomorrow = 1 ; | 
 |  |  |          }else if(thisMonth == 12){ | 
 |  |  |             year = thisYear + 1 ; | 
 |  |  |             month = 1 ; | 
 |  |  |             tomorrow = 1 ; | 
 |  |  |          } | 
 |  |  |       }else if(thisDay == 30){ | 
 |  |  |          if(thisMonth == 4 || thisMonth == 6 || thisMonth == 9 || thisMonth == 11){ | 
 |  |  |             year = thisYear ; | 
 |  |  |             month = thisMonth + 1 ; | 
 |  |  |             tomorrow = 1 ; | 
 |  |  |          }else{ | 
 |  |  |             year = thisYear ; | 
 |  |  |             month = thisMonth ; | 
 |  |  |             tomorrow = 31 ; | 
 |  |  |          } | 
 |  |  |       }else if(thisDay == 29){ | 
 |  |  |          if(thisMonth == 2){ | 
 |  |  |             year = thisYear ; | 
 |  |  |             month = thisMonth + 1 ; | 
 |  |  |             tomorrow = 1 ; | 
 |  |  |          }else{ | 
 |  |  |             year = thisYear ; | 
 |  |  |             month = thisMonth ; | 
 |  |  |             tomorrow = 30 ; | 
 |  |  |          } | 
 |  |  |       }else if(thisDay == 28){ | 
 |  |  |          if(thisMonth == 2){ | 
 |  |  |             if(!isLeapYear(thisYear)){ | 
 |  |  |                year = thisYear ; | 
 |  |  |                month = thisMonth + 1 ; | 
 |  |  |                tomorrow = 1 ; | 
 |  |  |             }else{ | 
 |  |  |                year = thisYear ; | 
 |  |  |                month = thisMonth ; | 
 |  |  |                tomorrow = 29 ; | 
 |  |  |             } | 
 |  |  |          }else{ | 
 |  |  |             year = thisYear ; | 
 |  |  |             month = thisMonth ; | 
 |  |  |             tomorrow = 29 ; | 
 |  |  |          } | 
 |  |  |       }else{ | 
 |  |  |          year = thisYear ; | 
 |  |  |          month = thisMonth ; | 
 |  |  |          tomorrow = thisDay + 1 ; | 
 |  |  |       } | 
 |  |  |       return year + "-"  | 
 |  |  |          + (month > 9?(month + ""):("0" + month)) + "-"  | 
 |  |  |          + (tomorrow > 9?(tomorrow + ""):("0" + tomorrow)) ; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  | 	 | 
 |  |  |    /////////////////////////////////////////////////// | 
 |  |  | 	 | 
 |  |  |    /** | 
 |  |  |     * 得到上月份 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastMonth_ym(){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.DAY_OF_YEAR, -((Integer.parseInt(dd())))); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy_MM(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到上月份 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastMonth_ym(int thisMonth){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       if(thisMonth == 2){ | 
 |  |  |          cal.add(Calendar.DAY_OF_YEAR, - 30); | 
 |  |  |       }else{ | 
 |  |  |          cal.add(Calendar.DAY_OF_YEAR, - 32); | 
 |  |  |       } | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy_MM(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到上月份 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastMonth_ym(int year , int thisMonth){ | 
 |  |  |       thisMonth = thisMonth - 1 ; | 
 |  |  |       if(thisMonth == 0){ | 
 |  |  |          year = year - 1 ; | 
 |  |  |          thisMonth = 12 ; | 
 |  |  |       } | 
 |  |  |       return  ("" + year) + "-" + (thisMonth<10?("0"+thisMonth):(""+thisMonth)) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到上月份 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastMonth_ymd(int year , int thisMonth , int thisDate){ | 
 |  |  |       thisMonth = thisMonth - 1 ; | 
 |  |  |       if(thisMonth == 0){ | 
 |  |  |          year = year - 1 ; | 
 |  |  |          thisMonth = 12 ; | 
 |  |  |       } | 
 |  |  |       if(thisMonth == 2){ | 
 |  |  |          if(isLeapYear(year)){ | 
 |  |  |             if(thisDate > 29){ | 
 |  |  |                thisDate = 29 ; | 
 |  |  |             } | 
 |  |  |          }else{ | 
 |  |  |             if(thisDate > 28){ | 
 |  |  |                thisDate = 28 ; | 
 |  |  |             } | 
 |  |  |          } | 
 |  |  |       }else if(thisMonth == 4 || thisMonth == 6 || thisMonth == 9 || thisMonth == 11){ | 
 |  |  |          if(thisDate > 30){ | 
 |  |  |             thisDate = 30 ; | 
 |  |  |          } | 
 |  |  | 			 | 
 |  |  |       } | 
 |  |  |       return  ("" + year) + "-" + (thisMonth<10?("0"+thisMonth):(""+thisMonth)) + "-" + (thisDate<10?("0"+thisDate):(""+thisDate)) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到上上月份 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastLastMonth_ym(){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.DAY_OF_YEAR, -((Integer.parseInt(dd())) + 32)); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy_MM(date) ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到上年度 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static String lastYear(){ | 
 |  |  |       Date date = new Date(); | 
 |  |  |       Calendar cal = Calendar.getInstance(); | 
 |  |  |       cal.add(Calendar.DAY_OF_YEAR, - 365); | 
 |  |  |       date.setTime(cal.getTimeInMillis());			 | 
 |  |  |       return DateTime.yyyy(date) ; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    /** | 
 |  |  |     * d1比d2日期更近返回1(d1>d2),相等返回0,更远返回-1(d1<d2) | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static int compareDateStrByChar(String d1 , String d2){ | 
 |  |  |       int r = 0 ; | 
 |  |  |       if(d1 == null || d2 == null || d1.length() != d2.length()){ | 
 |  |  |          return r ; | 
 |  |  |       } | 
 |  |  |       for(int i = 0 ; i < d1.length() ; i++){ | 
 |  |  |          if(d1.charAt(i)>d2.charAt(i)){ | 
 |  |  |             return 1 ; | 
 |  |  |          }else{ | 
 |  |  |             if(d1.charAt(i)<d2.charAt(i)){ | 
 |  |  |                return -1 ; | 
 |  |  |             } | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |       return r ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 两个日期比较(格式如 2008-09-09 00:00:00) | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static boolean oneCompareTow( String one , String two){ | 
 |  |  |       one = one.replaceAll("-", "") ; | 
 |  |  |       one = one.replaceAll(" ", "") ; | 
 |  |  |       one = one.replaceAll(":", "") ; | 
 |  |  |       two = two.replaceAll("-", "") ; | 
 |  |  |       two = two.replaceAll(" ", "") ; | 
 |  |  |       two = two.replaceAll(":", "") ; | 
 |  |  |       long onel = Long.parseLong(one) ; | 
 |  |  |       long twol = Long.parseLong(two) ; | 
 |  |  |       return onel >= twol ; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    /** | 
 |  |  |     * 字符串型转变为整数 | 
 |  |  |     * @return 转换后日期 | 
 |  |  |     */ | 
 |  |  |    public static long dateTime_str2int(String str){ | 
 |  |  |       if(str == null || str.trim().equals("")){ | 
 |  |  |          return 0L ; | 
 |  |  |       } | 
 |  |  |       str = str.replaceAll("-", "") ; | 
 |  |  |       str = str.replaceAll(":", "") ; | 
 |  |  |       str = str.replaceAll(" ", "") ; | 
 |  |  |       return Long.parseLong(str) ; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |  | 
 |  |  |    public static String[] yearGroup1() { | 
 |  |  |       int thisYear = Integer.parseInt((new SimpleDateFormat("yyyy")) | 
 |  |  |             .format(System.currentTimeMillis())); | 
 |  |  |       int len = (thisYear - 2005) + 1; | 
 |  |  |       String[] years = new String[len]; | 
 |  |  |       for (int i = 0; i < len; i++) | 
 |  |  |          years[i] = "" + (thisYear - i); | 
 |  |  |  | 
 |  |  |       return years; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static String[] yearGroup2() { | 
 |  |  |       return new String[]{"1900", "1901", "1902", "1903", "1904", "1905", | 
 |  |  |             "1906", "1907", "1908", "1909", "1910", "1911", "1912", "1913", | 
 |  |  |             "1914", "1915", "1916", "1917", "1918", "1919", "1920", "1921", | 
 |  |  |             "1922", "1923", "1924", "1925", "1926", "1927", "1928", "1929", | 
 |  |  |             "1930", "1931", "1932", "1933", "1934", "1935", "1936", "1937", | 
 |  |  |             "1938", "1939", "1940", "1941", "1942", "1943", "1944", "1945", | 
 |  |  |             "1946", "1947", "1948", "1949", "1950", "1951", "1952", "1953", | 
 |  |  |             "1954", "1955", "1956", "1957", "1958", "1959", "1960", "1961", | 
 |  |  |             "1962", "1963", "1964", "1965", "1966", "1967", "1968", "1969", | 
 |  |  |             "1970", "1971", "1972", "1973", "1974", "1975", "1976", "1977", | 
 |  |  |             "1978", "1979", "1980", "1981", "1982", "1983", "1984", "1985", | 
 |  |  |             "1986", "1987", "1988", "1989", "1990", "1991", "1992", "1993", | 
 |  |  |             "1994", "1995", "1996", "1997", "1998", "1999", "2000", "2001", | 
 |  |  |             "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", | 
 |  |  |             "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017", | 
 |  |  |             "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025", | 
 |  |  |             "2026", "2027", "2028", "2029"}; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static String[] monthGroup() { | 
 |  |  |       return new String[] { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", | 
 |  |  |             "11", "12" }; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static String[] dateGroup() { | 
 |  |  |       return new String[] { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", | 
 |  |  |             "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", | 
 |  |  |             "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", | 
 |  |  |             "31" }; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static String[] timeGroup() { | 
 |  |  |       return new String[] { "00", "01", "02", "03", "04", "05", "06", "07", "08", | 
 |  |  |             "09", "11", "12", "13", "14", "15", "16", "17", "18", "19", | 
 |  |  |             "20", "21", "22", "23" }; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static int[] dayGrpInMonth(int year, int month){ | 
 |  |  |       if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){ | 
 |  |  |           return new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31} ; | 
 |  |  |       }else{ | 
 |  |  |          if(month == 2){ | 
 |  |  |             if(isLeapYear(year)){ | 
 |  |  |                return new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29} ; | 
 |  |  |             }else{ | 
 |  |  |                return new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28} ; | 
 |  |  |             } | 
 |  |  |          }else{ | 
 |  |  |             return new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30} ; | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public static String getWeek(int wk) { | 
 |  |  |       if (wk == 1) { | 
 |  |  |          return "日"; | 
 |  |  |       } else if (wk == 2) { | 
 |  |  |          return "一"; | 
 |  |  |       } else if (wk == 3) { | 
 |  |  |          return "二"; | 
 |  |  |       } else if (wk == 4) { | 
 |  |  |          return "三"; | 
 |  |  |       } else if (wk == 5) { | 
 |  |  |          return "四"; | 
 |  |  |       } else if (wk == 6) { | 
 |  |  |          return "五"; | 
 |  |  |       } else if (wk == 7) { | 
 |  |  |          return "六"; | 
 |  |  |       } | 
 |  |  |       return ""; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    /** | 
 |  |  |     * 判断是否为润年 | 
 |  |  |     * @param year 年 | 
 |  |  |     * @return true或false | 
 |  |  |     */ | 
 |  |  |    public static boolean isLeapYear(int year) { | 
 |  |  |       return new GregorianCalendar().isLeapYear(year) ; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 		 | 
 |  |  |    /** | 
 |  |  |     * 得到从今天起往前一个月的日期列表 | 
 |  |  |     * 要求不能存在两个以上月的日期(如上月是二月,今天是3月1日) | 
 |  |  |     * 不包括当天日期及上月份与当前日相同的日期 | 
 |  |  |     * @return 数组 | 
 |  |  |     */ | 
 |  |  |    public static ArrayList<MonthDateVO> createOneMonthDate(){ | 
 |  |  |       ArrayList<MonthDateVO> list = new ArrayList<>() ; | 
 |  |  |  | 
 |  |  |       int year = Integer.parseInt(yyyy()) ; | 
 |  |  |       int month = Integer.parseInt(MM()) ; | 
 |  |  |       int date = Integer.parseInt(dd()) ; | 
 |  |  | 		 | 
 |  |  |       int beforeYear = year ; | 
 |  |  |       int beforeMonth = month - 1 ; | 
 |  |  |       int beforeDate = 31 ; | 
 |  |  |       //int thisTotal = date ; | 
 |  |  |       int beforeTotal = 31 - date ; | 
 |  |  |       if(month == 1){ | 
 |  |  |          beforeYear = year - 1 ; | 
 |  |  |          beforeMonth = 12 ; | 
 |  |  |          beforeDate = 31 ; | 
 |  |  |       } | 
 |  |  |       if(month == 3){ | 
 |  |  |          beforeMonth = 2 ; | 
 |  |  |          if(isLeapYear(year)){ | 
 |  |  |             beforeDate = 29 ; | 
 |  |  |             if(beforeTotal > 29){ | 
 |  |  |                beforeTotal = 29 ; | 
 |  |  |             } | 
 |  |  |          }else{ | 
 |  |  |             beforeDate = 28 ; | 
 |  |  |             if(beforeTotal > 28){ | 
 |  |  |                beforeTotal = 28 ; | 
 |  |  |             } | 
 |  |  |          } | 
 |  |  | 			 | 
 |  |  |       } | 
 |  |  |       switch (month) { | 
 |  |  |          case 2 -> { | 
 |  |  |             beforeMonth = 1; | 
 |  |  |             beforeDate = 31; | 
 |  |  |          } | 
 |  |  |          case 4 -> { | 
 |  |  |             beforeMonth = 3; | 
 |  |  |             beforeDate = 31; | 
 |  |  |          } | 
 |  |  |          case 5 -> { | 
 |  |  |             beforeMonth = 4; | 
 |  |  |             beforeDate = 30; | 
 |  |  |          } | 
 |  |  |          case 6 -> { | 
 |  |  |             beforeMonth = 5; | 
 |  |  |             beforeDate = 31; | 
 |  |  |          } | 
 |  |  |          case 7 -> { | 
 |  |  |             beforeMonth = 6; | 
 |  |  |             beforeDate = 30; | 
 |  |  |          } | 
 |  |  |          case 8 -> { | 
 |  |  |             beforeMonth = 7; | 
 |  |  |             beforeDate = 31; | 
 |  |  |          } | 
 |  |  |          case 9 -> { | 
 |  |  |             beforeMonth = 8; | 
 |  |  |             beforeDate = 31; | 
 |  |  |          } | 
 |  |  |          case 10 -> { | 
 |  |  |             beforeMonth = 9; | 
 |  |  |             beforeDate = 30; | 
 |  |  |          } | 
 |  |  |          case 11 -> { | 
 |  |  |             beforeMonth = 10; | 
 |  |  |             beforeDate = 31; | 
 |  |  |          } | 
 |  |  |          case 12 -> { | 
 |  |  |             beforeMonth = 11; | 
 |  |  |             beforeDate = 30; | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |       int n = 0 ; | 
 |  |  |       for(int i = date ; i > 0 ; i--){ | 
 |  |  |          MonthDateVO vo = new MonthDateVO() ; | 
 |  |  |          vo.setDate(year + "-" + month + "-" + (date - n)) ; | 
 |  |  |          vo.setIndex(date - n + "") ; | 
 |  |  |          if(date - n != date){ | 
 |  |  |             list.add(vo) ; | 
 |  |  |          } | 
 |  |  |          n++ ; | 
 |  |  |       } | 
 |  |  |       n = 0 ; | 
 |  |  |       for(int i = beforeTotal ; i > 0 ; i--){ | 
 |  |  |          MonthDateVO vo = new MonthDateVO() ; | 
 |  |  |          vo.setDate(beforeYear + "-" + beforeMonth + "-" + (beforeDate - n)) ; | 
 |  |  |          vo.setIndex(beforeDate - n + "") ; | 
 |  |  |          if(beforeDate - n != date){ | 
 |  |  |             list.add(vo) ; | 
 |  |  |          } | 
 |  |  |          n++ ; | 
 |  |  |       } | 
 |  |  |       return list ; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  | 	 | 
 |  |  |    /** | 
 |  |  |     * 将2009-02-12格式的日期分解为年 月 日字符串数组 | 
 |  |  |     * @param ymd 年月日 | 
 |  |  |     * @return 字符串数组 | 
 |  |  |     */ | 
 |  |  |    public static String[] altYmd(String ymd){ | 
 |  |  |       if(ymd == null || ymd.length() < 10){ | 
 |  |  |          return null ; | 
 |  |  |       } | 
 |  |  |       String[] s = new String[3] ; | 
 |  |  |       s[0] = ymd.substring(0 , 4) ; | 
 |  |  |       s[1] = ymd.substring(5 , 7) ; | 
 |  |  |       s[2] = ymd.substring(8,10) ; | 
 |  |  |       return s ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 将2009-02-12格式的日期分解为年 月 日字符串数组 | 
 |  |  |     * @param ymdhms 年月日时分秒 | 
 |  |  |     * @return 数组 | 
 |  |  |     */ | 
 |  |  |    public static int[] altYmdhms(String ymdhms) throws Exception{ | 
 |  |  |       if(ymdhms == null || ymdhms.length() != 19){ | 
 |  |  |          throw new Exception("上期格式不正确,正确的格式为 yyyy-MM-dd hh:mm:ss") ; | 
 |  |  |       } | 
 |  |  |       String[] sg1 = ymdhms.split(" ") ; | 
 |  |  |       String[] sg1_1 = sg1[0].split("-") ; | 
 |  |  |       String[] sg1_2 = sg1[1].split(":") ; | 
 |  |  | 		 | 
 |  |  |       int[] ig = new int[6] ; | 
 |  |  |       ig[0] = Integer.parseInt(sg1_1[0]) ; | 
 |  |  |       ig[1] = Integer.parseInt(sg1_1[1]) ; | 
 |  |  |       ig[2] = Integer.parseInt(sg1_1[2]) ; | 
 |  |  |  | 
 |  |  |       ig[3] = Integer.parseInt(sg1_2[0]) ; | 
 |  |  |       ig[4] = Integer.parseInt(sg1_2[1]) ; | 
 |  |  |       ig[5] = Integer.parseInt(sg1_2[2]) ; | 
 |  |  | 		 | 
 |  |  |       return ig ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 	 | 
 |  |  |    public static class MonthDateVO { | 
 |  |  |  | 
 |  |  |       public String date ; | 
 |  |  |       public String index ; | 
 |  |  |       public String getDate() { | 
 |  |  |          return date; | 
 |  |  |       } | 
 |  |  |       public void setDate(String date) { | 
 |  |  |          this.date = date; | 
 |  |  |       } | 
 |  |  |       public String getIndex() { | 
 |  |  |          return index; | 
 |  |  |       } | 
 |  |  |       public void setIndex(String index) { | 
 |  |  |          this.index = index; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  | 	 | 
 |  |  |    public static void main(String[] args){ | 
 |  |  |       Long now = getTime() ; | 
 |  |  |       System.out.println(now); | 
 |  |  | //      Long t = lastXMinuteTime(1) ; | 
 |  |  | //      System.out.println(t); | 
 |  |  | 		 | 
 |  |  |       //3951840342 | 
 |  |  |       Date dt = getDate(1447857387L) ; | 
 |  |  |       String s = yyyy_MM_dd_HH_mm_ss(dt); | 
 |  |  |       System.out.println(s); | 
 |  |  |  | 
 |  |  |       System.out.println(lastMonth_ym()) ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |