Date工具类

因为用到的工具时间类比较,所以把写的都拿来放一块了,分享下

public class DateTool {

     private final static SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");  
     private final static SimpleDateFormat longHourSdf = new SimpleDateFormat("yyyy-MM-dd HH");;  
     private final static SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");;  

    public static String formatDate(Date date,String format){
        String result="";
        SimpleDateFormat sdf=new SimpleDateFormat(format);
        if(date!=null){
            result=sdf.format(date);
        }
        return result;
    }

    public static Date formatString(String str,String format) throws Exception{

        if(StringTool.isEmpty(str)){
            return null;
        }
        SimpleDateFormat sdf=new SimpleDateFormat(format);
        return sdf.parse(str);

    }

    public static String getCurrentDateStr() throws Exception{
        Date date=new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddhhmmss");
        return sdf.format(date);
    }

   /**
    * yyyy-MM-dd HH:mm:ss
    * @return 
    */
   public static String getTime(){

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
         String time=formatter.format(new Date());

       return time;

   }
   /**
    * yyyy-MM-dd
    * @return
    */
   public static String getDate(){

       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
       String time=formatter.format(new Date());
       return time;

   }

   /**
    * 返回星期数
    * @Description: TODO
    * @param @return   
    * @return int  
    * @throws
    */
   public static int getWeek(){
       Calendar c = Calendar.getInstance();
       // 今天是一周中的第几天
       int dayOfWeek = c.get(Calendar.DAY_OF_WEEK );
       return dayOfWeek;
   }

   /**
    * 返回本周七天的日期
    * @Description: TODO
    * @param @return   
    * @return String[]  
    * @throws
    */
   public static String[] getWeekDays(){
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       Calendar c = Calendar.getInstance();
       // 今天是一周中的第几天
       int dayOfWeek = c.get(Calendar.DAY_OF_WEEK );
       if (c.getFirstDayOfWeek() == Calendar.SUNDAY) {
           c.add(Calendar.DAY_OF_MONTH, 1);
       }
       // 计算一周开始的日期
       c.add(Calendar.DAY_OF_MONTH, -dayOfWeek);
       String[] weekDays = new String[7]; 
       for (int i=0;i<7;i++) {
           c.add(Calendar.DAY_OF_MONTH, 1);
           weekDays[i] = sdf.format(c.getTime());
       }
       return weekDays;
   }

   /**
    * 获取相差时间,以分为单位
    * @param starttime
    * @param endtime
    * @return
    * @throws ParseException
    */
   public static int getMinute(String starttime,String endtime) throws ParseException{

       SimpleDateFormat format1 = new SimpleDateFormat("HH:mm");
       SimpleDateFormat format2 = new SimpleDateFormat("HH:mm");
       long time1=format1.parse(starttime).getTime();
       long time2=format2.parse(endtime).getTime();
       int minute=(int) ((time2-time1)/(1000*60));
       return minute;
   }

   /**
    * 分钟相加
    * @param starttime
    * @param intervaltime
    * @return
    * @throws ParseException
    */
   public static String addMinute(String starttime,int intervaltime) throws ParseException{

     SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
     int b=intervaltime*60*1000;
     long result = sdf.parse(starttime).getTime() + (b);
     Date d1 = new Date(result);
     return sdf.format(d1).toString();
   }

   /**
    * 获取当前是第几季度
    * 1 第一季度 2 第二季度 3 第三季度 4 第四季度 
    * 一季度是1月1日到3月31日;二季度是4月1日到6月30;三季度是7月1到9月30;四季度是10月1到12月31。
    * @param date
    * @return
    */
   public static int getSeason(Date date) {  

       int season = 0;  

       Calendar c = Calendar.getInstance();  
       c.setTime(date);  
       int month = c.get(Calendar.MONTH);  
       switch (month) {  
       case Calendar.JANUARY:  
       case Calendar.FEBRUARY:  
       case Calendar.MARCH:  
           season = 1;  
           break;  
       case Calendar.APRIL:  
       case Calendar.MAY:  
       case Calendar.JUNE:  
           season = 2;  
           break;  
       case Calendar.JULY:  
       case Calendar.AUGUST:  
       case Calendar.SEPTEMBER:  
           season = 3;  
           break;  
       case Calendar.OCTOBER:  
       case Calendar.NOVEMBER:  
       case Calendar.DECEMBER:  
           season = 4;  
           break;  
       default:  
           break;  
       }  
       return season;  
   } 

   /**
    * 获取当前季度开始时间
    * @return
    */
   public static String getCurrentQuarterStartTime() {  
       Calendar c = Calendar.getInstance();  
       int currentMonth = c.get(Calendar.MONTH) + 1;   
       String now="";
       try {  
           if (currentMonth >= 1 && currentMonth <= 3)  
               c.set(Calendar.MONTH, 0);  
           else if (currentMonth >= 4 && currentMonth <= 6)  
               c.set(Calendar.MONTH, 3);  
           else if (currentMonth >= 7 && currentMonth <= 9)  
               c.set(Calendar.MONTH, 4);  
           else if (currentMonth >= 10 && currentMonth <= 12)  
               c.set(Calendar.MONTH, 9);  
           c.set(Calendar.DATE, 1);  
            now = shortSdf.format(c.getTime()) +" 00:00:00";  
       } catch (Exception e) {  
           e.printStackTrace();  
       }  
       return now;  
   }  

   /**
    * 获取当前季度结束时间
    * @return
    */
   public static String getCurrentQuarterEndTime() {  
       Calendar c = Calendar.getInstance();  
       int currentMonth = c.get(Calendar.MONTH) + 1;  
       String now=""; 
       try {  
           if (currentMonth >= 1 && currentMonth <= 3) {  
               c.set(Calendar.MONTH, 2);  
               c.set(Calendar.DATE, 31);  
           } else if (currentMonth >= 4 && currentMonth <= 6) {  
               c.set(Calendar.MONTH, 5);  
               c.set(Calendar.DATE, 30);  
           } else if (currentMonth >= 7 && currentMonth <= 9) {  
               c.set(Calendar.MONTH, 8);  
               c.set(Calendar.DATE, 30);  
           } else if (currentMonth >= 10 && currentMonth <= 12) {  
               c.set(Calendar.MONTH, 11);  
               c.set(Calendar.DATE, 31);  
           }  
           now = shortSdf.format(c.getTime()) + " 23:59:59";  
       } catch (Exception e) {  
           e.printStackTrace();  
       }  
       return now;  
   } 

   /**   
    * 
    *日期加几月 
    *  
    **/ 
   public static String dateAddMonth(String str,int mon) throws Exception {     
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");   
       Date dt = sdf.parse(str);   
       Calendar rightNow = Calendar.getInstance();   
       rightNow.setTime(dt);   
       rightNow.add(Calendar.MONTH, mon);// 日期加几个月   // 
       Date dt1 = rightNow.getTime();   
       String reStr = sdf.format(dt1);   
       return reStr;       
   }

   /**   
    * 
    *日期加几天
    *  
    **/ 
   public static String dateAddDay(String str,int day) throws Exception {     
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");   
       Date dt = sdf.parse(str);   
       Calendar rightNow = Calendar.getInstance();   
       rightNow.setTime(dt);   
       rightNow.add(Calendar.DAY_OF_MONTH, day);// 日期加几个月   // 
       Date dt1 = rightNow.getTime();   
       String reStr = sdf.format(dt1);   
       return reStr;       
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值