• Java获取各种常用时间方法大全


    Java获取各种常用时间方法大全

    • package cc.javaweb.test;       
    • Java中文网,Java获取各种时间大全  
    •       
    • import java.text.DateFormat;       
    • import java.text.ParsePosition;       
    • import java.text.SimpleDateFormat;       
    • import java.util.Calendar;       
    • import java.util.Date;       
    • import java.util.GregorianCalendar;       
    •       
    • public class TimeTest {       
    •     //用来全局控制 上一周,本周,下一周的周数变化       
    •     private  int weeks = 0;       
    •     private int MaxDate;//一月最大天数       
    •     private int MaxYear;//一年最大天数       
    •            
    •            
    •     /**     
    •      * @param args     
    •      */      
    •     public static void main(String[] args) {       
    •         TimeTest tt = new TimeTest();       
    •         System.out.println("获取当天日期:"+tt.getNowTime("yyyy-MM-dd"));       
    •         System.out.println("获取本周一日期:"+tt.getMondayOFWeek());       
    •         System.out.println("获取本周日的日期~:"+tt.getCurrentWeekday());       
    •         System.out.println("获取上周一日期:"+tt.getPreviousWeekday());       
    •         System.out.println("获取上周日日期:"+tt.getPreviousWeekSunday());       
    •         System.out.println("获取下周一日期:"+tt.getNextMonday());       
    •         System.out.println("获取下周日日期:"+tt.getNextSunday());       
    •         System.out.println("获得相应周的周六的日期:"+tt.getNowTime("yyyy-MM-dd"));       
    •         System.out.println("获取本月第一天日期:"+tt.getFirstDayOfMonth());       
    •         System.out.println("获取本月最后一天日期:"+tt.getDefaultDay());       
    •         System.out.println("获取上月第一天日期:"+tt.getPreviousMonthFirst());       
    •         System.out.println("获取上月最后一天的日期:"+tt.getPreviousMonthEnd());       
    •         System.out.println("获取下月第一天日期:"+tt.getNextMonthFirst());       
    •         System.out.println("获取下月最后一天日期:"+tt.getNextMonthEnd());       
    •         System.out.println("获取本年的第一天日期:"+tt.getCurrentYearFirst());       
    •         System.out.println("获取本年最后一天日期:"+tt.getCurrentYearEnd());       
    •         System.out.println("获取去年的第一天日期:"+tt.getPreviousYearFirst());       
    •         System.out.println("获取去年的最后一天日期:"+tt.getPreviousYearEnd());       
    •         System.out.println("获取明年第一天日期:"+tt.getNextYearFirst());       
    •         System.out.println("获取明年最后一天日期:"+tt.getNextYearEnd());       
    •         System.out.println("获取本季度第一天到最后一天:"+tt.getThisSeasonTime(11));       
    •         System.out.println("获取两个日期之间间隔天数2010-12-31~2010-9-14:"+TimeTest.getTwoDay("2010-12-31","2010-9-14"));       
    •     }             
    •            
    •     /**     
    •         * 得到二个日期间的间隔天数
    •         */      
    •     public static String getTwoDay(String sj1, String sj2) {       
    •         SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");       
    •         long day = 0;       
    •         try {       
    •          java.util.Date date = myFormatter.parse(sj1);       
    •          java.util.Date mydate = myFormatter.parse(sj2);       
    •          day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);       
    •         } catch (Exception e) {       
    •          return "";       
    •         }       
    •         return day + "";       
    •     }        
    •       
    •     /**     
    •         * 根据一个日期,返回是星期几的字符串     
    •         *      
    •         * @param sdate     
    •         * @return     
    •         */      
    •     public static String getWeek(String sdate) {       
    •         // 再转换为时间       
    •         Date date = TimeTest.strToDate(sdate);       
    •         Calendar c = Calendar.getInstance();       
    •         c.setTime(date);       
    •         // int hour=c.get(Calendar.DAY_OF_WEEK);       
    •         // hour中存的就是星期几了,其范围 1~7       
    •         // 1=星期日 7=星期六,其他类推       
    •         return new SimpleDateFormat("EEEE").format(c.getTime());       
    •     }       
    •       
    •     /**     
    •         * 将短时间格式字符串转换为时间 yyyy-MM-dd      
    •         *      
    •         * @param strDate     
    •         * @return     
    •         */      
    •     public static Date strToDate(String strDate) {       
    •         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");       
    •         ParsePosition pos = new ParsePosition(0);       
    •         Date strtodate = formatter.parse(strDate, pos);       
    •         return strtodate;       
    •     }       
    •       
    •     /**     
    •         * 两个时间之间的天数     
    •         *      
    •         * @param date1     
    •         * @param date2     
    •         * @return     
    •         */      
    •     public static long getDays(String date1, String date2) {       
    •         if (date1 == null || date1.equals(""))       
    •          return 0;       
    •         if (date2 == null || date2.equals(""))       
    •          return 0;       
    •         // 转换为标准时间       
    •         SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");       
    •         java.util.Date date = null;       
    •         java.util.Date mydate = null;       
    •         try {       
    •          date = myFormatter.parse(date1);       
    •          mydate = myFormatter.parse(date2);       
    •         } catch (Exception e) {       
    •         }       
    •         long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);       
    •         return day;       
    •     }        
    •            
    •     // 计算当月最后一天,返回字符串       
    •     public String getDefaultDay(){         
    •        String str = "";       
    •        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");           
    •       
    •        Calendar lastDate = Calendar.getInstance();       
    •        lastDate.set(Calendar.DATE,1);//设为当前月的1号       
    •        lastDate.add(Calendar.MONTH,1);//加一个月,变为下月的1号       
    •        lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天       
    •               
    •        str=sdf.format(lastDate.getTime());       
    •        return str;         
    •     }       
    •            
    •     // 上月第一天       
    •     public String getPreviousMonthFirst(){         
    •        String str = "";       
    •        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");           
    •       
    •        Calendar lastDate = Calendar.getInstance();       
    •        lastDate.set(Calendar.DATE,1);//设为当前月的1号       
    •        lastDate.add(Calendar.MONTH,-1);//减一个月,变为下月的1号       
    •        //lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天       
    •               
    •        str=sdf.format(lastDate.getTime());       
    •        return str;         
    •     }       
    •            
    •     //获取当月第一天       
    •     public String getFirstDayOfMonth(){         
    •        String str = "";       
    •        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");           
    •       
    •        Calendar lastDate = Calendar.getInstance();       
    •        lastDate.set(Calendar.DATE,1);//设为当前月的1号       
    •        str=sdf.format(lastDate.getTime());       
    •        return str;         
    •     }       
    •            
    •     // 获得本周星期日的日期         
    •     public String getCurrentWeekday() {       
    •         weeks = 0;       
    •         int mondayPlus = this.getMondayPlus();       
    •         GregorianCalendar currentDate = new GregorianCalendar();       
    •         currentDate.add(GregorianCalendar.DATE, mondayPlus+6);       
    •         Date monday = currentDate.getTime();       
    •                
    •         DateFormat df = DateFormat.getDateInstance();       
    •         String preMonday = df.format(monday);       
    •         return preMonday;       
    •     }        
    •            
    •     //获取当天时间        
    •     public String getNowTime(String dateformat){       
    •         Date   now   =   new   Date();          
    •         SimpleDateFormat   dateFormat   =   new   SimpleDateFormat(dateformat);//可以方便地修改日期格式          
    •         String  hehe  = dateFormat.format(now);          
    •         return hehe;       
    •     }       
    •            
    •     // 获得当前日期与本周日相差的天数       
    •     private int getMondayPlus() {       
    •         Calendar cd = Calendar.getInstance();       
    •         // 获得今天是一周的第几天,星期日是第一天,星期二是第二天......       
    •         int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK)-1;         //因为按中国礼拜一作为第一天所以这里减1       
    •         if (dayOfWeek == 1) {       
    •             return 0;       
    •         } else {       
    •             return 1 - dayOfWeek;       
    •         }       
    •     }       
    •            
    •     //获得本周一的日期       
    •     public String getMondayOFWeek(){       
    •          weeks = 0;       
    •          int mondayPlus = this.getMondayPlus();       
    •          GregorianCalendar currentDate = new GregorianCalendar();       
    •          currentDate.add(GregorianCalendar.DATE, mondayPlus);       
    •          Date monday = currentDate.getTime();       
    •                 
    •          DateFormat df = DateFormat.getDateInstance();       
    •          String preMonday = df.format(monday);       
    •          return preMonday;       
    •     }       
    •            
    •   //获得相应周的周六的日期       
    •     public String getSaturday() {       
    •         int mondayPlus = this.getMondayPlus();       
    •         GregorianCalendar currentDate = new GregorianCalendar();       
    •         currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks + 6);       
    •         Date monday = currentDate.getTime();       
    •         DateFormat df = DateFormat.getDateInstance();       
    •         String preMonday = df.format(monday);       
    •         return preMonday;       
    •     }  
    •  // 获得上周星期日的日期       
    •     public String getPreviousWeekSunday() {       
    •         weeks=0;       
    •         weeks--;       
    •         int mondayPlus = this.getMondayPlus();       
    •         GregorianCalendar currentDate = new GregorianCalendar();       
    •         currentDate.add(GregorianCalendar.DATE, mondayPlus+weeks);       
    •         Date monday = currentDate.getTime();       
    •         DateFormat df = DateFormat.getDateInstance();       
    •         String preMonday = df.format(monday);       
    •         return preMonday;       
    •     }       
    •       
    •  // 获得上周星期一的日期       
    •     public String getPreviousWeekday() {       
    •         weeks--;       
    •         int mondayPlus = this.getMondayPlus();       
    •         GregorianCalendar currentDate = new GregorianCalendar();       
    •         currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);       
    •         Date monday = currentDate.getTime();       
    •         DateFormat df = DateFormat.getDateInstance();       
    •         String preMonday = df.format(monday);       
    •         return preMonday;       
    •     }       
    •            
    •     // 获得下周星期一的日期       
    •     public String getNextMonday() {       
    •         weeks++;       
    •         int mondayPlus = this.getMondayPlus();       
    •         GregorianCalendar currentDate = new GregorianCalendar();       
    •         currentDate.add(GregorianCalendar.DATE, mondayPlus + 7);       
    •         Date monday = currentDate.getTime();       
    •         DateFormat df = DateFormat.getDateInstance();       
    •         String preMonday = df.format(monday);       
    •         return preMonday;       
    •     }       
    •            
    •  // 获得下周星期日的日期       
    •     public String getNextSunday() {       
    •                
    •         int mondayPlus = this.getMondayPlus();       
    •         GregorianCalendar currentDate = new GregorianCalendar();       
    •         currentDate.add(GregorianCalendar.DATE, mondayPlus + 7+6);       
    •         Date monday = currentDate.getTime();       
    •         DateFormat df = DateFormat.getDateInstance();       
    •         String preMonday = df.format(monday);       
    •         return preMonday;       
    •     }       
    •            
    •     private int getMonthPlus(){       
    •         Calendar cd = Calendar.getInstance();       
    •         int monthOfNumber = cd.get(Calendar.DAY_OF_MONTH);       
    •         cd.set(Calendar.DATE, 1);//把日期设置为当月第一天        
    •         cd.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天        
    •         MaxDate=cd.get(Calendar.DATE);        
    •         if(monthOfNumber == 1){       
    •             return -MaxDate;       
    •         }else{       
    •             return 1-monthOfNumber;       
    •         }       
    •     }       
    •            
    •   //获得上月最后一天的日期       
    •     public String getPreviousMonthEnd(){       
    •         String str = "";       
    •        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");           
    •       
    •        Calendar lastDate = Calendar.getInstance();       
    •       lastDate.add(Calendar.MONTH,-1);//减一个月       
    •       lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天        
    •       lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天        
    •        str=sdf.format(lastDate.getTime());       
    •        return str;         
    •     }       
    •            
    •   //获得下个月第一天的日期       
    •     public String getNextMonthFirst(){       
    •         String str = "";       
    •        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");           
    •       
    •        Calendar lastDate = Calendar.getInstance();       
    •       lastDate.add(Calendar.MONTH,1);//减一个月       
    •       lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天        
    •        str=sdf.format(lastDate.getTime());       
    •        return str;         
    •     }       
    •            
    •   //获得下个月最后一天的日期       
    •     public String getNextMonthEnd(){       
    •         String str = "";       
    •        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");           
    •       
    •        Calendar lastDate = Calendar.getInstance();       
    •       lastDate.add(Calendar.MONTH,1);//加一个月       
    •       lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天        
    •       lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天        
    •        str=sdf.format(lastDate.getTime());       
    •        return str;         
    •     }       
    •            
    •     //获得明年最后一天的日期       
    •     public String getNextYearEnd(){       
    •         String str = "";       
    •        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");           
    •       
    •       Calendar lastDate = Calendar.getInstance();       
    •       lastDate.add(Calendar.YEAR,1);//加一个年       
    •       lastDate.set(Calendar.DAY_OF_YEAR, 1);       
    •      lastDate.roll(Calendar.DAY_OF_YEAR, -1);       
    •        str=sdf.format(lastDate.getTime());       
    •        return str;         
    •     }       
    •            
    •   //获得明年第一天的日期       
    •     public String getNextYearFirst(){       
    •         String str = "";       
    •        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");           
    •       
    •       Calendar lastDate = Calendar.getInstance();       
    •       lastDate.add(Calendar.YEAR,1);//加一个年       
    •       lastDate.set(Calendar.DAY_OF_YEAR, 1);       
    •            str=sdf.format(lastDate.getTime());       
    •       return str;         
    •                
    •     }       
    •            
    •   //获得本年有多少天       
    •     private int getMaxYear(){       
    •         Calendar cd = Calendar.getInstance();       
    •         cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天       
    •         cd.roll(Calendar.DAY_OF_YEAR,-1);//把日期回滚一天。       
    •         int MaxYear = cd.get(Calendar.DAY_OF_YEAR);        
    •         return MaxYear;       
    •     }       
    •            
    •     private int getYearPlus(){       
    •         Calendar cd = Calendar.getInstance();       
    •         int yearOfNumber = cd.get(Calendar.DAY_OF_YEAR);//获得当天是一年中的第几天       
    •         cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天       
    •         cd.roll(Calendar.DAY_OF_YEAR,-1);//把日期回滚一天。       
    •         int MaxYear = cd.get(Calendar.DAY_OF_YEAR);       
    •         if(yearOfNumber == 1){       
    •             return -MaxYear;       
    •         }else{       
    •             return 1-yearOfNumber;       
    •         }       
    •     }       
    •   //获得本年第一天的日期       
    •     public String getCurrentYearFirst(){       
    •         int yearPlus = this.getYearPlus();       
    •         GregorianCalendar currentDate = new GregorianCalendar();       
    •         currentDate.add(GregorianCalendar.DATE,yearPlus);       
    •         Date yearDay = currentDate.getTime();       
    •         DateFormat df = DateFormat.getDateInstance();       
    •         String preYearDay = df.format(yearDay);       
    •         return preYearDay;       
    •     }       
    • //获得本年最后一天的日期 *         
    •   public String getCurrentYearEnd(){         
    •       Date date = new Date();         
    •       SimpleDateFormat   dateFormat   =   new   SimpleDateFormat("yyyy");//可以方便地修改日期格式            
    •       String  years  = dateFormat.format(date);            
    •       return years+"-12-31";         
    •   }         
    •            
    • //获得上年第一天的日期 *         
    •   public String getPreviousYearFirst(){         
    •       Date date = new Date();         
    •       SimpleDateFormat   dateFormat   =   new   SimpleDateFormat("yyyy");//可以方便地修改日期格式            
    •       String  years  = dateFormat.format(date); int years_value = Integer.parseInt(years);           
    •       years_value--;         
    •       return years_value+"-1-1";         
    •   }         
    •            
    • //获得上年最后一天的日期         
    •   public String getPreviousYearEnd(){         
    •       weeks--;         
    •       int yearPlus = this.getYearPlus();         
    •       GregorianCalendar currentDate = new GregorianCalendar();         
    •       currentDate.add(GregorianCalendar.DATE,yearPlus+MaxYear*weeks+(MaxYear-1));         
    •       Date yearDay = currentDate.getTime();         
    •       DateFormat df = DateFormat.getDateInstance();         
    •       String preYearDay = df.format(yearDay);         
    •       getThisSeasonTime(11);         
    •       return preYearDay;         
    •   }         
    •            
    • //获得本季度         
    •   public String getThisSeasonTime(int month){         
    •       int array[][] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};         
    •       int season = 1;         
    •       if(month>=1&&month<=3){         
    •           season = 1;         
    •       }         
    •       if(month>=4&&month<=6){         
    •           season = 2;         
    •       }         
    •       if(month>=7&&month<=9){         
    •           season = 3;         
    •       }         
    •       if(month>=10&&month<=12){         
    •           season = 4;         
    •       }         
    •       int start_month = array[season-1][0];         
    •       int end_month = array[season-1][2];         
    •                
    •       Date date = new Date();         
    •       SimpleDateFormat   dateFormat   =   new   SimpleDateFormat("yyyy");//可以方便地修改日期格式            
    •       String  years  = dateFormat.format(date);            
    •       int years_value = Integer.parseInt(years);         
    •                
    •       int start_days =1;//years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);         
    •       int end_days = getLastDayOfMonth(years_value,end_month);         
    •       String seasonDate = years_value+"-"+start_month+"-"+start_days+";"+years_value+"-"+end_month+"-"+end_days;         
    •       return seasonDate;         
    •                
    •   }         
    •            
    •   /**      
    •    * 获取某年某月的最后一天      
    •    * @param year 年      
    •    * @param month 月      
    •    * @return 最后一天      
    •    */        
    •  private int getLastDayOfMonth(int year, int month) {         
    •        if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8        
    •                  || month == 10 || month == 12) {         
    •              return 31;         
    •        }         
    •        if (month == 4 || month == 6 || month == 9 || month == 11) {         
    •              return 30;         
    •        }         
    •        if (month == 2) {         
    •              if (isLeapYear(year)) {         
    •                  return 29;         
    •              } else {         
    •                  return 28;         
    •              }         
    •        }         
    •        return 0;         
    •  }         
    •  /**      
    •   * 是否闰年      
    •   * @param year 年      
    •   * @return       
    •   */        
    • public boolean isLeapYear(int year) {         
    •       return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);         
    • }  
  • 相关阅读:
    ajax写用户注册
    PHP——explode的应用(获取字符串,拆为下拉列表)
    PHP 语句和时间函数
    PHP 文件上传
    PHP 文件操作代码
    PHP 弹窗 源代码 css Jquery.js
    PHP Jquery 代码操作 内容 属性 样式 事件 Json数据
    PDO 代码
    练习 《新闻管理》 添加 修改 删除
    UTF-8
  • 原文地址:https://www.cnblogs.com/xinxin1994/p/5756686.html
Copyright © 2020-2023  润新知