A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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



  • package cc.javaweb.test;   
  •   
  • 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;      
  •     }  


2 个回复

倒序浏览
很不错,挺有用的。
回复 使用道具 举报
今天也要加油鸭
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马