Java时间转换(三)

  1. /** 
  2.   * 二个小时时间间的差值,必须保证二个时间都是"HH:MM"的格式,返回字符型的分钟 
  3.   */  
  4.  public static String getTwoHour(String st1, String st2) {  
  5.   String[] kk = null;  
  6.   String[] jj = null;  
  7.   kk = st1.split(":");  
  8.   jj = st2.split(":");  
  9.   if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0]))  
  10.    return "0";  
  11.   else {  
  12.    double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60;  
  13.    double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60;  
  14.    if ((y - u) > 0)  
  15.     return y - u + "";  
  16.    else  
  17.     return "0";  
  18.   }  
  19.  }  
  20.   
  21.  /** 
  22.   * 得到二个日期间的间隔天数 
  23.   */  
  24.  public static String getTwoDay(String sj1, String sj2) {  
  25.   SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");  
  26.   long day = 0;  
  27.   try {  
  28.    java.util.Date date = myFormatter.parse(sj1);  
  29.    java.util.Date mydate = myFormatter.parse(sj2);  
  30.    day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);  
  31.   } catch (Exception e) {  
  32.    return "";  
  33.   }  
  34.   return day + "";  
  35.  }  
  36.   
  37.  /** 
  38.   * 时间前推或后推分钟,其中JJ表示分钟. 
  39.   */  
  40.  public static String getPreTime(String sj1, String jj) {  
  41.   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  42.   String mydate1 = "";  
  43.   try {  
  44.    Date date1 = format.parse(sj1);  
  45.    long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;  
  46.    date1.setTime(Time * 1000);  
  47.    mydate1 = format.format(date1);  
  48.   } catch (Exception e) {  
  49.   }  
  50.   return mydate1;  
  51.  }  
  52.   
  53.  /** 
  54.   * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数 
  55.   */  
  56.  public static String getNextDay(String nowdate, String delay) {  
  57.   try{  
  58.   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
  59.   String mdate = "";  
  60.   Date d = strToDate(nowdate);  
  61.   long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;  
  62.   d.setTime(myTime * 1000);  
  63.   mdate = format.format(d);  
  64.   return mdate;  
  65.   }catch(Exception e){  
  66.    return "";  
  67.   }  
  68.  }  
  69.   
  70.  /** 
  71.   * 判断是否润年 
  72.   *  
  73.   * @param ddate 
  74.   * @return 
  75.   */  
  76.  public static boolean isLeapYear(String ddate) {  
  77.   
  78.   /** 
  79.    * 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年 
  80.    * 3.能被4整除同时能被100整除则不是闰年 
  81.    */  
  82.   Date d = strToDate(ddate);  
  83.   GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();  
  84.   gc.setTime(d);  
  85.   int year = gc.get(Calendar.YEAR);  
  86.   if ((year % 400) == 0)  
  87.    return true;  
  88.   else if ((year % 4) == 0) {  
  89.    if ((year % 100) == 0)  
  90.     return false;  
  91.    else  
  92.     return true;  
  93.   } else  
  94.    return false;  
  95.  }  
  96.   
  97.  /** 
  98.   * 返回美国时间格式 26 Apr 2006 
  99.   *  
  100.   * @param str 
  101.   * @return 
  102.   */  
  103.  public static String getEDate(String str) {  
  104.   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");  
  105.   ParsePosition pos = new ParsePosition(0);  
  106.   Date strtodate = formatter.parse(str, pos);  
  107.   String j = strtodate.toString();  
  108.   String[] k = j.split(" ");  
  109.   return k[2] + k[1].toUpperCase() + k[5].substring(24);  
  110.  }  
  111.   
  112.  /** 
  113.   * 获取一个月的最后一天 
  114.   *  
  115.   * @param dat 
  116.   * @return 
  117.   */  
  118.  public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd  
  119.   String str = dat.substring(08);  
  120.   String month = dat.substring(57);  
  121.   int mon = Integer.parseInt(month);  
  122.   if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {  
  123.    str += "31";  
  124.   } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {  
  125.    str += "30";  
  126.   } else {  
  127.    if (isLeapYear(dat)) {  
  128.     str += "29";  
  129.    } else {  
  130.     str += "28";  
  131.    }  
  132.   }  
  133.   return str;  
  134.  }  
  135.   
  136.  /** 
  137.   * 判断二个时间是否在同一个周 
  138.   *  
  139.   * @param date1 
  140.   * @param date2 
  141.   * @return 
  142.   */  
  143.  public static boolean isSameWeekDates(Date date1, Date date2) {  
  144.   Calendar cal1 = Calendar.getInstance();  
  145.   Calendar cal2 = Calendar.getInstance();  
  146.   cal1.setTime(date1);  
  147.   cal2.setTime(date2);  
  148.   int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);  
  149.   if (0 == subYear) {  
  150.    if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))  
  151.     return true;  
  152.   } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {  
  153.    // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周  
  154.    if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))  
  155.     return true;  
  156.   } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {  
  157.    if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))  
  158.     return true;  
  159.   }  
  160.   return false;  
  161.  }  
  162.   
  163.  /** 
  164.   * 产生周序列,即得到当前时间所在的年度是第几周 
  165.   *  
  166.   * @return 
  167.   */  
  168.  public static String getSeqWeek() {  
  169.   Calendar c = Calendar.getInstance(Locale.CHINA);  
  170.   String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));  
  171.   if (week.length() == 1)  
  172.    week = "0" + week;  
  173.   String year = Integer.toString(c.get(Calendar.YEAR));  
  174.   return year + week;  
  175.  }  
  176.   
  177.  /** 
  178.   * 获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号 
  179.   *  
  180.   * @param sdate 
  181.   * @param num 
  182.   * @return 
  183.   */  
  184.  public static String getWeek(String sdate, String num) {  
  185.   // 再转换为时间  
  186.   Date dd = VeDate.strToDate(sdate);  
  187.   Calendar c = Calendar.getInstance();  
  188.   c.setTime(dd);  
  189.   if (num.equals("1")) // 返回星期一所在的日期  
  190.    c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);  
  191.   else if (num.equals("2")) // 返回星期二所在的日期  
  192.    c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);  
  193.   else if (num.equals("3")) // 返回星期三所在的日期  
  194.    c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);  
  195.   else if (num.equals("4")) // 返回星期四所在的日期  
  196.    c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);  
  197.   else if (num.equals("5")) // 返回星期五所在的日期  
  198.    c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);  
  199.   else if (num.equals("6")) // 返回星期六所在的日期  
  200.    c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);  
  201.   else if (num.equals("0")) // 返回星期日所在的日期  
  202.    c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);  
  203.   return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());  
  204.  }  
  205.   

你可能感兴趣的:(java)