首页 > 学院 > 开发设计 > 正文

时间相关常用的方法

2019-11-06 08:12:49
字体:
来源:转载
供稿:网友
public class TimeUtils {   PRivate static DateFormat dayDf = new SimpleDateFormat("yyyy-MM-dd");   /**    * 获取系统时间-年    *     * @return    */   public static int getYear() {      return Calendar.getInstance().get(Calendar.YEAR);   }   /**    * 获取系统时间-月    *    * @return    */   public static int getMonth() {      return Calendar.getInstance().get(Calendar.MONTH) + 1;   }   /**    * 获取系统时间-周    *    * @return    */   public static int getWeek() {      return Calendar.getInstance().get(Calendar.WEEK_OF_YEAR);   }   /**    * 获取系统时间-日    *     * @return    */   public static int getDay() {      return Calendar.getInstance().get(Calendar.DAY_OF_MONTH);   }   /**    * 获取系统的时间-小时    * @return    */   public static int getHour() {      return Calendar.getInstance().get(Calendar.HOUR_OF_DAY);   }   /**    * 获取系统时间-分钟    * @return    */   public static int getMinute() {      return Calendar.getInstance().get(Calendar.MINUTE);   }   /**    * 获取系统时间-秒    * @return    */   public static int getSecond() {      return Calendar.getInstance().get(Calendar.SECOND);   }   /**    * 由字符串解析得到时间    *     * @param date    * @return    */   public static Date getDateFromString(String date) {      Date tDate = null;      try {         tDate = dayDf.parse(date);      } catch (ParseException e) {         e.printStackTrace();      }      return tDate;   }   /**    * 由字符串解析得到时间    *    * @param date    * @return    */   public static Date getDateFromString(DateFormat format,String date) {      Date tDate = null;      try {         tDate = format.parse(date);      } catch (ParseException e) {         e.printStackTrace();      }      return tDate;   }   /**    * 获得年月日    *    * @return    */   public static String getYMD() {      return getYear()+"-"+getMonth()+"-"+getDay();   }   /**    * 获得年月日时分秒    * @return     */   public static String getYMDHms() {      return getYear()+"-"+getMonth()+"-"+getDay()+" "+getHour()+":"+getMinute()+":"+getSecond();   }   /**    * 比较时间早晚    *     * @param date1    * @param date2    * @return 如果date2比date1早,返回true    */   public static boolean isEarly(Date date1, Date date2) {      if (date1.getTime() - date2.getTime() > 0) {         return true;      }      return false;   }   /**    * 比较两个日期字符串的早晚    * @param dateStr1    * @param dateStr2     * @return 如果dateStr2比dateStr1早,返回true     */   public static boolean isDateEarly(String dateStr1,String dateStr2){      DateFormat df = new SimpleDateFormat("yyyy-MM-dd");      Date date1 = null;      Date date2 = null;      try {         date1 = df.parse(dateStr1);         date2 = df.parse(dateStr2);         return isEarly(date1,date2);      } catch (ParseException e) {         e.printStackTrace();      }      return false;   }   /**    * 比较两个时间字符串的早晚    * @param timeStr1    * @param timeStr2     * @return 如果dateStr2比dateStr1早,返回true     */   public static boolean isTimeEarly(String timeStr1,String timeStr2){      DateFormat df = new SimpleDateFormat("HH:mm:ss");      Date date1 = null;      Date date2 = null;      try {         date1 = df.parse(timeStr1);         date2 = df.parse(timeStr2);         return isEarly(date1,date2);      } catch (ParseException e) {         e.printStackTrace();      }      return false;   }   /**    * 比较两个日期时间字符串的早晚    * @param DateTimeStr1    * @param DateTimeStr2     * @return 如果dateStr2比dateStr1早,返回true     */   public static boolean isDateTimeEarly(String DateTimeStr1,String DateTimeStr2){      DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");      Date date1 = null;      Date date2 = null;      try {         date1 = df.parse(DateTimeStr1);         date2 = df.parse(DateTimeStr2);         return isEarly(date1,date2);      } catch (ParseException e) {         e.printStackTrace();      }      return false;   }   /**    * 比较两个时间字符串的间隔早晚    * @param timeStr1    * @param timeStr2    * @param seconds     * @return 如果 dateStr2 比 dateStr1+间隔 早,返回true     */   public static boolean isTimeIntervalEarly(String timeStr1,String timeStr2,int seconds){      DateFormat df = new SimpleDateFormat("HH:mm:ss");      Date date1 = null;      Date date2 = null;      try {         date1 = df.parse(timeStr1);         date2 = df.parse(timeStr2);         if (date1.getTime()+seconds*1000 - date2.getTime() > 0) {            return true;         }      } catch (ParseException e) {         e.printStackTrace();      }      return false;   }   /**    * 得到每个月的天数    *     * @param year    *            查询的年    * @param month    *            查询的月    * @return    */   public static int getDayCountByYearAndMonth(int year, int month) {      int day = 30;      boolean flag = false;      switch (year % 4) {      case 0:         flag = true;         break;      default:         flag = false;         break;      }      switch (month) {      case 1:      case 3:      case 5:      case 7:      case 8:      case 10:      case 12:         day = 31;         break;      case 2:         day = flag ? 29 : 28;         break;      default:         day = 30;         break;      }      return day;   }   /**    * 根据年月日得到前一天    *     * @param year    * @param month    * @param day    * @return 数组,0-年,1-月,2-日    */   public static int[] getPreviousDay(int year, int month, int day) {      int[] previousDay = new int[3];      if (day == 1) {         if (month == 1) {            year = year - 1;            month = 12;            day = TimeUtils.getDayCountByYearAndMonth(year, month);         } else {            month = month - 1;            day = TimeUtils.getDayCountByYearAndMonth(year, month);         }      } else {         day = day - 1;      }      previousDay[0] = year;      previousDay[1] = month;      previousDay[2] = day;      return previousDay;   }   /**    * 根据年月日得到下一天    *     * @param year    * @param month    * @param day    * @return 数组,0-年,1-月,2-日    */   public static int[] getNextDay(int year, int month, int day) {      int[] nextDay = new int[3];      int mDayMaxByMonth = TimeUtils.getDayCountByYearAndMonth(year, month);      if (day < mDayMaxByMonth) {         day++;      } else {         if (month < 12) {            month++;         } else {            year++;            month = 1;         }         day = 1;      }      nextDay[0] = year;      nextDay[1] = month;      nextDay[2] = day;      return nextDay;   }   /**    * 根据年月日得到该月最后一天    * @param year    * @param month    * @return    */   public static int getLastDay(int year, int month) {      int day = 30;      boolean flag = false;      switch (year % 4) {      case 0:         flag = true;         break;      default:         flag = false;         break;      }      switch (month) {      case 1:      case 3:      case 5:      case 7:      case 8:      case 10:      case 12:         day = 31;         break;      case 2:         day = flag ? 29 : 28;         break;      default:         day = 30;         break;      }      return day;   }   /**    * 取得指定日期所在周的第一天    *    * @param date    * @return    */   public static Date getFirstDayOfWeek(Date date) {      Calendar c = new GregorianCalendar();      c.setFirstDayOfWeek(Calendar.MONDAY);      c.setTime(date);      c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday      return c.getTime ();   }   /**    * 取得指定日期所在周的最后一天    *    * @param date    * @return    */   public static Date getLastDayOfWeek(Date date) {      Calendar c = new GregorianCalendar();      c.setFirstDayOfWeek(Calendar.MONDAY);      c.setTime(date);      c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday      return c.getTime();   }   /**    * 得到某年某周的第一天    *    * @param year    * @param week    * @return    */   public static Date getFirstDayOfWeek(int year, int week) {      Calendar c = new GregorianCalendar();      c.set(Calendar.YEAR, year);      c.set(Calendar.MONTH, Calendar.JANUARY);      c.set(Calendar.DATE, 1);      Calendar cal = (GregorianCalendar) c.clone();      cal.add(Calendar.DATE, week * 7);      return getFirstDayOfWeek(cal.getTime());   }   /**    * 得到某年某周的最后一天    *    * @param year    * @param week    * @return    */   public static Date getLastDayOfWeek(int year, int week) {      Calendar c = new GregorianCalendar();      c.set(Calendar.YEAR, year);      c.set(Calendar.MONTH, Calendar.JANUARY);      c.set(Calendar.DATE, 1);      Calendar cal = (GregorianCalendar) c.clone();      cal.add(Calendar.DATE , week * 7);      return getLastDayOfWeek(cal.getTime());   }   // 获取当前时间所在年的最大周数   public static int getMaxWeekNumOfYear(int year) {      Calendar c = new GregorianCalendar();      c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);      return getWeekOfYear(c.getTime());   }   // 获取当前时间所在年的周数   public static int getWeekOfYear(Date date) {      Calendar c = new GregorianCalendar();      c.setFirstDayOfWeek(Calendar.SUNDAY);      c.setMinimalDaysInFirstWeek(1);      c.setTime(date);      return c.get(Calendar.WEEK_OF_YEAR);   }   /**    * 获得两个日子之间的所有日期    * @param startDay    * @param endDay    */   public static List<String> getDaysBetweenTwo(Date startDay, Date endDay) {      Calendar startDayC = Calendar.getInstance();      Calendar endDayC = Calendar.getInstance();      startDayC.setTime(startDay);      endDayC.setTime(endDay);      List<String> dates = new ArrayList<String>();      if (startDayC.compareTo(endDayC) >= 0) {         return dates;      }      Calendar currentPrintDay = startDayC;      while (true) {         // 日期加一         currentPrintDay.add(Calendar.DATE, 1);         if (currentPrintDay.compareTo(endDayC) == 0) {            break;         }         dates.add(dayDf.format(currentPrintDay.getTime()));      }      return dates;   }   public static String getPeriodOfWeek(int year, int week) {      Date first = getFirstDayOfWeek(year, week);      Date second = getLastDayOfWeek(year, week);      String result = new SimpleDateFormat("MM/dd").format(first)+"-"+new SimpleDateFormat("MM/dd").format(second);      return result;   }   /**    * 将形式如:"00:00:00"的时间加一秒    * @param time    * @return    */   public static String getNextSecondTime(String time) {      String[] times = time.split(":");      int len = times.length;      int second = Integer.valueOf(times[len - 1]);      int minute = Integer.valueOf(times[len - 2]);      int hour = len > 2 ? Integer.valueOf(times[len-3]) : 0;      second++;      if (second > 59) {         minute++;         second = second % 60;         if (minute > 59) {            hour++;            minute = minute % 60;         }      }      String sHour = hour > 9 ? String.valueOf(hour) : "0" + hour;      String sMinute = minute > 9 ? String.valueOf(minute) : "0" + minute;      String sSecond = second > 9 ? String.valueOf(second) : "0" + second;      return len > 2 ? sHour + ":" + sMinute + ":" + sSecond : sMinute + ":" + sSecond;   }   public static String COURSE_CLICK_HOUR = "";   public static String COURSE_CLICK_TIME = "";   public static String PUSH_CLICK_TIME = "";   public static String getTimeDiff(String start,String end){      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");      java.util.Date now = null;      java.util.Date date = null;      long hour;      long min;      try {         now = df.parse(end);         date=df.parse(start);         long l=now.getTime()-date.getTime();         long day=l/(24*60*60*1000);         hour=(l/(60*60*1000)-day*24);         min=((l/(60*1000))-day*24*60-hour*60);         System.out.println(""+day+"天"+hour+"小时"+min+"分");      } catch (ParseException e) {         e.printStackTrace();         return "";      }      if(hour == 0){         return min+"分钟";      }else{         return hour+"小时"+min+"分钟";      }   }   /***    * 格式化时间    * @return    */   public static String getDate(){      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");      String formatStr =formatter.format(new Date());      return formatStr;   }   public static String getStringTimeToStringTime(String time){      SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");      Date date = null;      try {         date = format1.parse(time);         SimpleDateFormat format2 = new SimpleDateFormat("yyyy/MM/dd");         return format2.format(date);      } catch (ParseException e) {         return time;      }   }   /***    * 获得时期时间    * @return    */   public static String getDateTimeFromMills(String mills){      try {         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");         long lt = new Long(mills);         Date date = new Date(lt);         String formatStr =formatter.format(date);         return formatStr;      } catch (Exception e) {         e.printStackTrace();         return "";      }   }   /**    * 通过日期时间获得毫秒    * @param dateTime    * @return     */   public static long getMillsFromDateTime(String dateTime){      try {         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");         Date date = formatter.parse(dateTime);         return date.getTime();      } catch (Exception e) {         e.printStackTrace();         return 0;      }   }}
上一篇:重写

下一篇:OpenCV对数极变换变换示例

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表