精华内容
下载资源
问答
  • 自:https://blog.csdn.net/u010486495/article/details/79260448 Java时间格式转换大全 import java.text.*; import java.util.Calendar;... * 获取现在时间 * * @return 返回时间类型 yyyy-M...

     

    转自:https://blog.csdn.net/u010486495/article/details/79260448

     

    Java时间格式转换大全
    
    import java.text.*;
    import java.util.Calendar;
    public class VeDate {
    /**
       * 获取现在时间
       * 
       * @return 返回时间类型 yyyy-MM-dd HH:mm:ss
       */
    public static Date getNowDate() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(currentTime);
       ParsePosition pos = new ParsePosition(8);
       Date currentTime_2 = formatter.parse(dateString, pos);
       return currentTime_2;
    }
    /**
       * 获取现在时间
       * 
       * @return返回短时间格式 yyyy-MM-dd
       */
    DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");         
    DateFormat format 2= new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");         
    Date date = null;    
    String str = null;                  
                
    // String转Date    
    str = "2007-1-18";          
    try {    
               date = format1.parse(str);   
               data = format2.parse(str); 
    } catch (ParseException e) {    
               e.printStackTrace();    
    }   
    /**
       * 获取现在时间
       * 
       * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
       */
    public static String getStringDate() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    /**
       * 获取现在时间
       * 
       * @return 返回短时间字符串格式yyyy-MM-dd
       */
    public static String getStringDateShort() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    /**
       * 获取时间 小时:分;秒 HH:mm:ss
       * 
       * @return
       */
    public static String getTimeShort() {
       SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
       Date currentTime = new Date();
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    /**
       * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
       * 
       * @param strDate
       * @return
       */
    public static Date strToDateLong(String strDate) {
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       ParsePosition pos = new ParsePosition(0);
       Date strtodate = formatter.parse(strDate, pos);
       return strtodate;
    }
    /**
       * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
       * 
       * @param dateDate
       * @return
       */
    public static String dateToStrLong(java.util.Date dateDate) {
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(dateDate);
       return dateString;
    }
    /**
       * 将短时间格式时间转换为字符串 yyyy-MM-dd
       * 
       * @param dateDate
       * @param k
       * @return
       */
    public static String dateToStr(java.util.Date dateDate) {
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
       String dateString = formatter.format(dateDate);
       return dateString;
    }
    /**
       * 将短时间格式字符串转换为时间 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;
    }
    /**
       * 得到现在时间
       * 
       * @return
       */
    public static Date getNow() {
       Date currentTime = new Date();
       return currentTime;
    }
    /**
       * 提取一个月中的最后一天
       * 
       * @param day
       * @return
       */
    public static Date getLastDate(long day) {
       Date date = new Date();
       long date_3_hm = date.getTime() - 3600000 * 34 * day;
       Date date_3_hm_date = new Date(date_3_hm);
       return date_3_hm_date;
    }
    /**
       * 得到现在时间
       * 
       * @return 字符串 yyyyMMdd HHmmss
       */
    public static String getStringToday() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    /**
       * 得到现在小时
       */
    public static String getHour() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(currentTime);
       String hour;
       hour = dateString.substring(11, 13);
       return hour;
    }
    /**
       * 得到现在分钟
       * 
       * @return
       */
    public static String getTime() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(currentTime);
       String min;
       min = dateString.substring(14, 16);
       return min;
    }
    /**
       * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。
       * 
       * @param sformat
       *             yyyyMMddhhmmss
       * @return
       */
    public static String getUserDate(String sformat) {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat(sformat);
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    --------------------------------------------------------------------------------------------------------------------------------
    
    做成方法
    
    import java.util.*;
    import java.text.*;
    import java.util.Calendar;
    
    public class VeDate {
     /**
      * 获取现在时间
      * 
      * @return 返回时间类型 yyyy-MM-dd HH:mm:ss
      */
     public static Date getNowDate() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(currentTime);
      ParsePosition pos = new ParsePosition(8);
      Date currentTime_2 = formatter.parse(dateString, pos);
      return currentTime_2;
     }
    
     /**
      * 获取现在时间
      * 
      * @return返回短时间格式 yyyy-MM-dd
      */
     public static Date getNowDateShort() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      String dateString = formatter.format(currentTime);
      ParsePosition pos = new ParsePosition(8);
      Date currentTime_2 = formatter.parse(dateString, pos);
      return currentTime_2;
     }
    
     /**
      * 获取现在时间
      * 
      * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
      */
     public static String getStringDate() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(currentTime);
      return dateString;
     }
    
     /**
      * 获取现在时间
      * 
      * @return 返回短时间字符串格式yyyy-MM-dd
      */
     public static String getStringDateShort() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      String dateString = formatter.format(currentTime);
      return dateString;
     }
    
     /**
      * 获取时间 小时:分;秒 HH:mm:ss
      * 
      * @return
      */
     public static String getTimeShort() {
      SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
      Date currentTime = new Date();
      String dateString = formatter.format(currentTime);
      return dateString;
     }
    
     /**
      * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
      * 
      * @param strDate
      * @return
      */
     public static Date strToDateLong(String strDate) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      ParsePosition pos = new ParsePosition(0);
      Date strtodate = formatter.parse(strDate, pos);
      return strtodate;
     }
    
     /**
      * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
      * 
      * @param dateDate
      * @return
      */
     public static String dateToStrLong(java.util.Date dateDate) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(dateDate);
      return dateString;
     }
    
     /**
      * 将短时间格式时间转换为字符串 yyyy-MM-dd
      * 
      * @param dateDate
      * @param k
      * @return
      */
     public static String dateToStr(java.util.Date dateDate) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      String dateString = formatter.format(dateDate);
      return dateString;
     }
    
     /**
      * 将短时间格式字符串转换为时间 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;
     }
    
     /**
      * 得到现在时间
      * 
      * @return
      */
     public static Date getNow() {
      Date currentTime = new Date();
      return currentTime;
     }
    
     /**
      * 提取一个月中的最后一天
      * 
      * @param day
      * @return
      */
     public static Date getLastDate(long day) {
      Date date = new Date();
      long date_3_hm = date.getTime() - 3600000 * 34 * day;
      Date date_3_hm_date = new Date(date_3_hm);
      return date_3_hm_date;
     }
    
     /**
      * 得到现在时间
      * 
      * @return 字符串 yyyyMMdd HHmmss
      */
     public static String getStringToday() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
      String dateString = formatter.format(currentTime);
      return dateString;
     }
    
     /**
      * 得到现在小时
      */
     public static String getHour() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(currentTime);
      String hour;
      hour = dateString.substring(11, 13);
      return hour;
     }
    
     /**
      * 得到现在分钟
      * 
      * @return
      */
     public static String getTime() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(currentTime);
      String min;
      min = dateString.substring(14, 16);
      return min;
     }
    
     /**
      * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。
      * 
      * @param sformat
      *            yyyyMMddhhmmss
      * @return
      */
     public static String getUserDate(String sformat) {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat(sformat);
      String dateString = formatter.format(currentTime);
      return dateString;
     }
    
     /**
      * 二个小时时间间的差值,必须保证二个时间都是"HH:MM"的格式,返回字符型的分钟
      */
     public static String getTwoHour(String st1, String st2) {
      String[] kk = null;
      String[] jj = null;
      kk = st1.split(":");
      jj = st2.split(":");
      if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0]))
       return "0";
      else {
       double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60;
       double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60;
       if ((y - u) > 0)
        return y - u + "";
       else
        return "0";
      }
     }
    
     /**
      * 得到二个日期间的间隔天数
      */
     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 + "";
     }
    
     /**
      * 时间前推或后推分钟,其中JJ表示分钟.
      */
     public static String getPreTime(String sj1, String jj) {
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String mydate1 = "";
      try {
       Date date1 = format.parse(sj1);
       long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;
       date1.setTime(Time * 1000);
       mydate1 = format.format(date1);
      } catch (Exception e) {
      }
      return mydate1;
     }
    
     /**
      * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数
      */
     public static String getNextDay(String nowdate, String delay) {
      try{
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
      String mdate = "";
      Date d = strToDate(nowdate);
      long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;
      d.setTime(myTime * 1000);
      mdate = format.format(d);
      return mdate;
      }catch(Exception e){
       return "";
      }
     }
    
     /**
      * 判断是否润年
      * 
      * @param ddate
      * @return
      */
     public static boolean isLeapYear(String ddate) {
    
      /**
       * 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
       * 3.能被4整除同时能被100整除则不是闰年
       */
      Date d = strToDate(ddate);
      GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
      gc.setTime(d);
      int year = gc.get(Calendar.YEAR);
      if ((year % 400) == 0)
       return true;
      else if ((year % 4) == 0) {
       if ((year % 100) == 0)
        return false;
       else
        return true;
      } else
       return false;
     }
    
     /**
      * 返回美国时间格式 26 Apr 2006
      * 
      * @param str
      * @return
      */
     public static String getEDate(String str) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      ParsePosition pos = new ParsePosition(0);
      Date strtodate = formatter.parse(str, pos);
      String j = strtodate.toString();
      String[] k = j.split(" ");
      return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);
     }
    
     /**
      * 获取一个月的最后一天
      * 
      * @param dat
      * @return
      */
     public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd
      String str = dat.substring(0, 8);
      String month = dat.substring(5, 7);
      int mon = Integer.parseInt(month);
      if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {
       str += "31";
      } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {
       str += "30";
      } else {
       if (isLeapYear(dat)) {
        str += "29";
       } else {
        str += "28";
       }
      }
      return str;
     }
    
     /**
      * 判断二个时间是否在同一个周
      * 
      * @param date1
      * @param date2
      * @return
      */
     public static boolean isSameWeekDates(Date date1, Date date2) {
      Calendar cal1 = Calendar.getInstance();
      Calendar cal2 = Calendar.getInstance();
      cal1.setTime(date1);
      cal2.setTime(date2);
      int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
      if (0 == subYear) {
       if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
        return true;
      } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
       // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周
       if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
        return true;
      } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
       if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
        return true;
      }
      return false;
     }
    
     /**
      * 产生周序列,即得到当前时间所在的年度是第几周
      * 
      * @return
      */
     public static String getSeqWeek() {
      Calendar c = Calendar.getInstance(Locale.CHINA);
      String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
      if (week.length() == 1)
       week = "0" + week;
      String year = Integer.toString(c.get(Calendar.YEAR));
      return year + week;
     }
    
     /**
      * 获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号
      * 
      * @param sdate
      * @param num
      * @return
      */
     public static String getWeek(String sdate, String num) {
      // 再转换为时间
      Date dd = VeDate.strToDate(sdate);
      Calendar c = Calendar.getInstance();
      c.setTime(dd);
      if (num.equals("1")) // 返回星期一所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
      else if (num.equals("2")) // 返回星期二所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
      else if (num.equals("3")) // 返回星期三所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
      else if (num.equals("4")) // 返回星期四所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
      else if (num.equals("5")) // 返回星期五所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
      else if (num.equals("6")) // 返回星期六所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
      else if (num.equals("0")) // 返回星期日所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
      return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
     }
    
     /**
      * 根据一个日期,返回是星期几的字符串
      * 
      * @param sdate
      * @return
      */
     public static String getWeek(String sdate) {
      // 再转换为时间
      Date date = VeDate.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());
     }
     public static String getWeekStr(String sdate){
      String str = "";
      str = VeDate.getWeek(sdate);
      if("1".equals(str)){
       str = "星期日";
      }else if("2".equals(str)){
       str = "星期一";
      }else if("3".equals(str)){
       str = "星期二";
      }else if("4".equals(str)){
       str = "星期三";
      }else if("5".equals(str)){
       str = "星期四";
      }else if("6".equals(str)){
       str = "星期五";
      }else if("7".equals(str)){
       str = "星期六";
      }
      return str;
     }
    
     /**
      * 两个时间之间的天数
      * 
      * @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;
     }
    
     /**
      * 形成如下的日历 , 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间
      * 此函数返回该日历第一行星期日所在的日期
      * 
      * @param sdate
      * @return
      */
     public static String getNowMonth(String sdate) {
      // 取该时间所在月的一号
      sdate = sdate.substring(0, 8) + "01";
    
      // 得到这个月的1号是星期几
      Date date = VeDate.strToDate(sdate);
      Calendar c = Calendar.getInstance();
      c.setTime(date);
      int u = c.get(Calendar.DAY_OF_WEEK);
      String newday = VeDate.getNextDay(sdate, (1 - u) + "");
      return newday;
     }
    
     /**
      * 取得数据库主键 生成格式为yyyymmddhhmmss+k位随机数
      * 
      * @param k
      *            表示是取几位随机数,可以自己定
      */
    
     public static String getNo(int k) {
    
      return getUserDate("yyyyMMddhhmmss") + getRandom(k);
     }
    
     /**
      * 返回一个随机数
      * 
      * @param i
      * @return
      */
     public static String getRandom(int i) {
      Random jjj = new Random();
      // int suiJiShu = jjj.nextInt(9);
      if (i == 0)
       return "";
      String jj = "";
      for (int k = 0; k < i; k++) {
       jj = jj + jjj.nextInt(9);
      }
      return jj;
     }
    
     /**
      * 
      * @param args
      */
     public static boolean RightDate(String date) {
    
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      ;
      if (date == null)
       return false;
      if (date.length() > 10) {
       sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      } else {
       sdf = new SimpleDateFormat("yyyy-MM-dd");
      }
      try {
       sdf.parse(date);
      } catch (ParseException pe) {
       return false;
      }
      return true;
     }
    
     /***************************************************************************
      * //nd=1表示返回的值中包含年度 //yf=1表示返回的值中包含月份 //rq=1表示返回的值中包含日期 //format表示返回的格式 1
      * 以年月日中文返回 2 以横线-返回 // 3 以斜线/返回 4 以缩写不带其它符号形式返回 // 5 以点号.返回
      **************************************************************************/
     public static String getStringDateMonth(String sdate, String nd, String yf, String rq, String format) {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      String dateString = formatter.format(currentTime);
      String s_nd = dateString.substring(0, 4); // 年份
      String s_yf = dateString.substring(5, 7); // 月份
      String s_rq = dateString.substring(8, 10); // 日期
      String sreturn = "";
      roc.util.MyChar mc = new roc.util.MyChar();
      if (sdate == null || sdate.equals("") || !mc.Isdate(sdate)) { // 处理空值情况
       if (nd.equals("1")) {
        sreturn = s_nd;
        // 处理间隔符
        if (format.equals("1"))
         sreturn = sreturn + "年";
        else if (format.equals("2"))
         sreturn = sreturn + "-";
        else if (format.equals("3"))
         sreturn = sreturn + "/";
        else if (format.equals("5"))
         sreturn = sreturn + ".";
       }
       // 处理月份
       if (yf.equals("1")) {
        sreturn = sreturn + s_yf;
        if (format.equals("1"))
         sreturn = sreturn + "月";
        else if (format.equals("2"))
         sreturn = sreturn + "-";
        else if (format.equals("3"))
         sreturn = sreturn + "/";
        else if (format.equals("5"))
         sreturn = sreturn + ".";
       }
       // 处理日期
       if (rq.equals("1")) {
        sreturn = sreturn + s_rq;
        if (format.equals("1"))
         sreturn = sreturn + "日";
       }
      } else {
       // 不是空值,也是一个合法的日期值,则先将其转换为标准的时间格式
       sdate = roc.util.RocDate.getOKDate(sdate);
       s_nd = sdate.substring(0, 4); // 年份
       s_yf = sdate.substring(5, 7); // 月份
       s_rq = sdate.substring(8, 10); // 日期
       if (nd.equals("1")) {
        sreturn = s_nd;
        // 处理间隔符
        if (format.equals("1"))
         sreturn = sreturn + "年";
        else if (format.equals("2"))
         sreturn = sreturn + "-";
        else if (format.equals("3"))
         sreturn = sreturn + "/";
        else if (format.equals("5"))
         sreturn = sreturn + ".";
       }
       // 处理月份
       if (yf.equals("1")) {
        sreturn = sreturn + s_yf;
        if (format.equals("1"))
         sreturn = sreturn + "月";
        else if (format.equals("2"))
         sreturn = sreturn + "-";
        else if (format.equals("3"))
         sreturn = sreturn + "/";
        else if (format.equals("5"))
         sreturn = sreturn + ".";
       }
       // 处理日期
       if (rq.equals("1")) {
        sreturn = sreturn + s_rq;
        if (format.equals("1"))
         sreturn = sreturn + "日";
       }
      }
      return sreturn;
     }
    
     public static String getNextMonthDay(String sdate, int m) {
      sdate = getOKDate(sdate);
      int year = Integer.parseInt(sdate.substring(0, 4));
      int month = Integer.parseInt(sdate.substring(5, 7));
      month = month + m;
      if (month < 0) {
       month = month + 12;
       year = year - 1;
      } else if (month > 12) {
       month = month - 12;
       year = year + 1;
      }
      String smonth = "";
      if (month < 10)
       smonth = "0" + month;
      else
       smonth = "" + month;
      return year + "-" + smonth + "-10";
     }
    
     public static String getOKDate(String sdate) {
      if (sdate == null || sdate.equals(""))
       return getStringDateShort();
    
      if (!VeStr.Isdate(sdate)) {
       sdate = getStringDateShort();
      }
      // 将“/”转换为“-”
      sdate = VeStr.Replace(sdate, "/", "-");
      // 如果只有8位长度,则要进行转换
      if (sdate.length() == 8)
       sdate = sdate.substring(0, 4) + "-" + sdate.substring(4, 6) + "-" + sdate.substring(6, 8);
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      ParsePosition pos = new ParsePosition(0);
      Date strtodate = formatter.parse(sdate, pos);
      String dateString = formatter.format(strtodate);
      return dateString;
     }
    
     public static void main(String[] args) throws Exception {
      try {
       //System.out.print(Integer.valueOf(getTwoDay("2006-11-03 12:22:10", "2006-11-02 11:22:09")));
      } catch (Exception e) {
       throw new Exception();
      }
      //System.out.println("sss");
     }

     

    展开全文
  • 各种日期格式化和转换 将 Calendar 转为字符串 获取当前月份的最后一天 根据 timestamp 生成各类时间状态串 计算两个日期之间相差的天数 等等等等
  • JAVA获取当前时间并转换成string格式
  • Java开发时间日期转换工具类,涉及String,Date,时间戳互,以及获取几天(月或年)前或后的时间
  • public static void main(String[] args) throws ParseException { long day = (strToDate("20180922").getTime() - getNewDate().getTime())/(24*60*60*1000); System.out.println(day);//1 } /***...
    public static void main(String[] args) throws ParseException {
    		long day = (strToDate("20180922").getTime() - getNewDate().getTime())/(24*60*60*1000);
    		System.out.println(day);//1
    	}
    	/***
    	 * 获取当前时间并格式化
    	 * @return
    	 * @throws ParseException
    	 */
    	public static Date getNewDate() throws ParseException{
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    		String data1 = sdf.format(new Date());
    		Date data = sdf.parse(data1);
    		return data;
    	}
    	/***
    	 * 传入String格式日期格式化并返回日期
    	 * @param date
    	 * @return
    	 * @throws ParseException
    	 */
    	public static Date strToDate(String date) throws ParseException{
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    		Date data = sdf.parse(date);
    		return data;
    	}

     

    展开全文
  • java时间日期的各种转换总结以及应用实例 由于工作中经常要用到时间,日期,以及当前时间的毫秒值等 很多时候涉及到了它们之间的相互转换,今天就好好的总结一下. 首先基本介绍一下java中有关时间,日期的...

    java时间日期的各种转换总结以及应用实例

    由于工作中经常要用到时间,日期,以及当前时间的毫秒值等

    很多时候涉及到了它们之间的相互转换,今天就好好的总结一下.

    首先基本介绍一下java中有关时间,日期的类

    1. Date类

    里面的很多方法已经过时被Calendar或者DateFormat类取代

    两种常用的构造方法实例:(其余的已经过时)

    
    Date date = new Date();
    // 这种构造方法传递的参数是1970年1月1日到传递时间所经历的毫秒数
    Date date2 = new Date(System.currentTimeMillis());
    
    输出的结果如下:
    Sat Mar 17 10:13:23 CST 2018
    Sat Mar 17 10:13:23 CST 2018
    

    2. Calendar类

    常用的初始化方法:

    Calendar calendar = Calendar.getInstance();
    
    // 返回的结果:
    java.util.GregorianCalendar[time=1521253372638,areFieldsSet=true,areAllFieldsSet=true,
    lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",
    offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],
    firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2018,MONTH=2,WEEK_OF_YEAR=11,
    WEEK_OF_MONTH=3,DAY_OF_MONTH=17,DAY_OF_YEAR=76,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=3,
    AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=22,SECOND=52,MILLISECOND=638,
    ZONE_OFFSET=28800000,DST_OFFSET=0]
    
    // 从结果中可以看到,相比于Date类,Calendar类包含了更多的信息
    // 除了年月日,时分秒等基本信息还包括当前时间的毫秒值,所在时区等各种信息
    

    3. DateFormat类

    初始化方法:

    SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMddHHmmssS");
    

    这里简单介绍日期类型常用的format格式:

    1.yyyy指的是年(类似于2018), yy指的是年的后两位(类似于18)
    2.大写的MM指的是月份,小写的mm指的是分钟
    3.dd指的是天
    4.大写的HH表示的是24小时制,hh表示的是12小时制
    5.ss指的是秒,ssS指的是精确到毫秒
    6.为了看起来更容易辨认,可以在format格式部分使用诸如:之类的符号进行分隔
    
    返回结果:
    java.text.SimpleDateFormat@bcd152f3
    // 返回的结果是这个类的名字 + 这个类的hash码,因为没有重写toString()方法.
    // 即getClass().getName() + "@" + Integer.toHexString(hashCode()) 
    

    对三种时间日期常用类就介绍到这里,
    下面主要通过实际应用来了解这几种类之间的相互转换

    首先介绍当前时间毫秒值的获取方式

    Long l = System.currentTimeMillis();
    Long time = new Date().getTime();
    Long millis = Calendar.getInstance().getTimeInMillis();
    

    接下来就是各种的转换过程:

    1. Date类型转变成对应时间的毫秒值

    Date date = new Date();
    SimpleDateFormat sdf =new SimpleDateFormat("yyMMddHHmm");
    try {
    	Date d = sdf.parse("1803170000");
    	System.out.println(d.getTime());
    	} catch (ParseException e) {
    		e.printStackTrace();
    	}
    

    2.Calendar类型转变成对应时间的毫秒值

    Calendar calendar = Calendar.getInstance();
    //这里需要注意一下,calendar传入的月份,是从0开始计数的(也就是说,2月相当于实际的三月)
    calendar.set(2018, 2, 17); 
    System.out.println(calendar.getTimeInMillis());
    

    接下来介绍Date类型如何转变成指定format格式的日期类型

    首先回忆一下,Date类型本来是长这个样子的:

    Sat Mar 17 13:24:30 CST 2018
    

    1.Date类型转变成年月日时分秒的format格式

    Date date = new Date();
    SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    System.out.println(sdf.format(date));
    

    转换过后的结果是这样的:

    2018-03-17 13:28:41
    

    从结果上看,还是挺美观的吧~


    可能我们平时还会有这样的需求,要将普通的Date格式转换成精确到秒的格式:
    类似于这样的20180317133112
    表达的含义是2018年3月17日13时31分12秒
    这种情况该如何做呢?

    Date date = new Date();
    SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMddHHmmss");
    System.out.println(sdf.format(date));
    

    稍微调整一下format格式就可以做到啦!

    Date类型和Calendar类型之间的相互转换

    1.Date类型转换为Calendar类型

    Calendar calendar = Calendar.getInstance();
    calendar.setTime(new Date());    
    

    2.Calendar类型转换为Date类型

    Calendar calendar = Calendar.getInstance();
    calendar.getTime();
    

    接下来介绍指定的String format格式转变为Date,Calendar类型

    1.String转换为Date类型

    String str="2018-3-17";
    SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
    try {
    	Date birthday = sdf.parse(str);
    	System.out.println(birthday);
        } catch (ParseException e) {
    	// TODO Auto-generated catch block
    	e.printStackTrace();
    	}
    

    执行完毕的结果是这样的:

    Sat Mar 17 00:00:00 CST 2018
    

    2.String转换为Calendar类型

    String str="2018-3-17";	
    SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
    Date date = null;
    try {
    	date = sdf.parse(str);
    	} catch (ParseException e) {
    	e.printStackTrace();
    	}
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    System.out.println(calendar);
    

    几个小的案例

    工作中遇到的几个小需求

    1. 根据毫秒值来获取当前的日期

    	/**
         * 根据时间的毫秒值来获取当天的日期 日期格式 :yyyy-MM-dd
         * @param timeMillies(时间的毫秒值)
         * @return
         */
        public static String getStringDate(Long timeMillies)
        {
        	Date date = new Date();
        	date.setTime(timeMillies);
        	SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
        	return sdf.format(date);
        }
    

    2. 将毫秒格式的字符串转变成当前的秒数(也就是降低精度)

    	 /**
    	     * 将字符串格式的时间转为秒的值
    	     *
    	     * @param dateTime
    	     *            字符串时间(格式:2018-08-29 23:59:46.08)
    	     * @return
    	     */
    	    public static Long getLongFromString(String dateTime) {
    	          try {
    	        	  /**
    	               * 将字符串数据转化为秒数
    	               */
    	        	  SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//24小时制
    	        	  if (dateTime == null || dateTime.equals(""))
    	        	  {
    	        		  return null;
    	        	  }
    	      		  return simpleDateFormat.parse(dateTime).getTime();
    	         } catch (Exception e ) 
    	          {
    	        	 return null;
    	         }
    
    做一个测试 : 
    
    	g l =getLongFromString("2018-08-30 00:00:03.500");
        	Long l2 = getLongFromString("2018-08-30 00:01:03.600");
        	System.out.println(l2 - l );
    
    这两个时间戳正常的结果应该是 相差: 60100毫秒
    但是现在计算输出的结果变成了 相差 : 60000毫秒
    已经实现了该需求 ! 
    

    3. 将给定的日期格式变成我们想要的日期格式

    	  /**
    	     * 将传入的字符串日期 标准化输出
    	     * 传入参数 : 20180830  结果 : 2018-08-30
    	     * @param str
    	     * @return
    	     */
    	    public static String getFormatDate(String str)
    	    {
    	    	SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); //传入参数的format格式
    	    	SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); //输出结果的format格式
    	    	try 
    	    	{
    				Date date = sdf.parse(str.trim());
    				return dateFormat.format(date);
    			} catch (ParseException e) 
    	    	{
    				return "";
    			}
    	    }
    

    如上:就是我能想到的一些互相转换的方式了,
    以后如果在工作中在应用到新的在持续进行更新,
    希望能对大家有所帮助!

    展开全文
  • 1.string格式转化为Date对象: //把string转化为date DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd"); Date date = fmt.parse...注意:引入的是:java.text.DateFormat   2.Date格式转化...

    1.string格式转化为Date对象:

    //把string转化为date
    DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd");
    Date date = fmt.parse(szBeginTime);
    test.setStartTime(date); 

     

    注意:引入的是:java.text.DateFormat

     

    2.Date格式转化为String对象:

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String startTime = sdf.format(startTime);

     

    Java时间格式转换大全


    import java.text.*;
    import java.util.Calendar;
    public class VeDate {
    /**
       * 获取现在时间
       * 
       * @return 返回时间类型 yyyy-MM-dd HH:mm:ss
       */
    public static Date getNowDate() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(currentTime);
       ParsePosition pos = new ParsePosition(8);
       Date currentTime_2 = formatter.parse(dateString, pos);
       return currentTime_2;
    }
    /**
       * 获取现在时间
       * 
       * @return返回短时间格式 yyyy-MM-dd
       */
    DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");         
    DateFormat format 2= new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");         
    Date date = null;    
    String str = null;                  
                
    // String转Date    
    str = "2007-1-18";          
    try {    
               date = format1.parse(str);   
               data = format2.parse(str); 
    } catch (ParseException e) {    
               e.printStackTrace();    
    }   
    /**
       * 获取现在时间
       * 
       * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
       */
    public static String getStringDate() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    /**
       * 获取现在时间
       * 
       * @return 返回短时间字符串格式yyyy-MM-dd
       */
    public static String getStringDateShort() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    /**
       * 获取时间 小时:分;秒 HH:mm:ss
       * 
       * @return
       */
    public static String getTimeShort() {
       SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
       Date currentTime = new Date();
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    /**
       * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
       * 
       * @param strDate
       * @return
       */
    public static Date strToDateLong(String strDate) {
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       ParsePosition pos = new ParsePosition(0);
       Date strtodate = formatter.parse(strDate, pos);
       return strtodate;
    }
    /**
       * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
       * 
       * @param dateDate
       * @return
       */
    public static String dateToStrLong(java.util.Date dateDate) {
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(dateDate);
       return dateString;
    }
    /**
       * 将短时间格式时间转换为字符串 yyyy-MM-dd
       * 
       * @param dateDate
       * @param k
       * @return
       */
    public static String dateToStr(java.util.Date dateDate) {
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
       String dateString = formatter.format(dateDate);
       return dateString;
    }
    /**
       * 将短时间格式字符串转换为时间 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;
    }
    /**
       * 得到现在时间
       * 
       * @return
       */
    public static Date getNow() {
       Date currentTime = new Date();
       return currentTime;
    }
    /**
       * 提取一个月中的最后一天
       * 
       * @param day
       * @return
       */
    public static Date getLastDate(long day) {
       Date date = new Date();
       long date_3_hm = date.getTime() - 3600000 * 34 * day;
       Date date_3_hm_date = new Date(date_3_hm);
       return date_3_hm_date;
    }
    /**
       * 得到现在时间
       * 
       * @return 字符串 yyyyMMdd HHmmss
       */
    public static String getStringToday() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    /**
       * 得到现在小时
       */
    public static String getHour() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(currentTime);
       String hour;
       hour = dateString.substring(11, 13);
       return hour;
    }
    /**
       * 得到现在分钟
       * 
       * @return
       */
    public static String getTime() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(currentTime);
       String min;
       min = dateString.substring(14, 16);
       return min;
    }
    /**
       * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。
       * 
       * @param sformat
       *             yyyyMMddhhmmss
       * @return
       */
    public static String getUserDate(String sformat) {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat(sformat);
       String dateString = formatter.format(currentTime);
       return dateString;
    }--------------------------------------------------------------------------------------------------------------------------------


    做成方法


    import java.util.*;
    import java.text.*;
    import java.util.Calendar;


    public class VeDate {
     /**
      * 获取现在时间
      * 
      * @return 返回时间类型 yyyy-MM-dd HH:mm:ss
      */
     public static Date getNowDate() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(currentTime);
      ParsePosition pos = new ParsePosition(8);
      Date currentTime_2 = formatter.parse(dateString, pos);
      return currentTime_2;
     }


     /**
      * 获取现在时间
      * 
      * @return返回短时间格式 yyyy-MM-dd
      */
     public static Date getNowDateShort() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      String dateString = formatter.format(currentTime);
      ParsePosition pos = new ParsePosition(8);
      Date currentTime_2 = formatter.parse(dateString, pos);
      return currentTime_2;
     }


     /**
      * 获取现在时间
      * 
      * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
      */
     public static String getStringDate() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(currentTime);
      return dateString;
     }


     /**
      * 获取现在时间
      * 
      * @return 返回短时间字符串格式yyyy-MM-dd
      */
     public static String getStringDateShort() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      String dateString = formatter.format(currentTime);
      return dateString;
     }


     /**
      * 获取时间 小时:分;秒 HH:mm:ss
      * 
      * @return
      */
     public static String getTimeShort() {
      SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
      Date currentTime = new Date();
      String dateString = formatter.format(currentTime);
      return dateString;
     }


     /**
      * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
      * 
      * @param strDate
      * @return
      */
     public static Date strToDateLong(String strDate) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      ParsePosition pos = new ParsePosition(0);
      Date strtodate = formatter.parse(strDate, pos);
      return strtodate;
     }


     /**
      * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
      * 
      * @param dateDate
      * @return
      */
     public static String dateToStrLong(java.util.Date dateDate) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(dateDate);
      return dateString;
     }


     /**
      * 将短时间格式时间转换为字符串 yyyy-MM-dd
      * 
      * @param dateDate
      * @param k
      * @return
      */
     public static String dateToStr(java.util.Date dateDate) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      String dateString = formatter.format(dateDate);
      return dateString;
     }


     /**
      * 将短时间格式字符串转换为时间 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;
     }


     /**
      * 得到现在时间
      * 
      * @return
      */
     public static Date getNow() {
      Date currentTime = new Date();
      return currentTime;
     }


     /**
      * 提取一个月中的最后一天
      * 
      * @param day
      * @return
      */
     public static Date getLastDate(long day) {
      Date date = new Date();
      long date_3_hm = date.getTime() - 3600000 * 34 * day;
      Date date_3_hm_date = new Date(date_3_hm);
      return date_3_hm_date;
     }


     /**
      * 得到现在时间
      * 
      * @return 字符串 yyyyMMdd HHmmss
      */
     public static String getStringToday() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
      String dateString = formatter.format(currentTime);
      return dateString;
     }


     /**
      * 得到现在小时
      */
     public static String getHour() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(currentTime);
      String hour;
      hour = dateString.substring(11, 13);
      return hour;
     }


     /**
      * 得到现在分钟
      * 
      * @return
      */
     public static String getTime() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(currentTime);
      String min;
      min = dateString.substring(14, 16);
      return min;
     }


     /**
      * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。
      * 
      * @param sformat
      *            yyyyMMddhhmmss
      * @return
      */
     public static String getUserDate(String sformat) {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat(sformat);
      String dateString = formatter.format(currentTime);
      return dateString;
     }


     /**
      * 二个小时时间间的差值,必须保证二个时间都是"HH:MM"的格式,返回字符型的分钟
      */
     public static String getTwoHour(String st1, String st2) {
      String[] kk = null;
      String[] jj = null;
      kk = st1.split(":");
      jj = st2.split(":");
      if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0]))
       return "0";
      else {
       double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60;
       double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60;
       if ((y - u) > 0)
        return y - u + "";
       else
        return "0";
      }
     }


     /**
      * 得到二个日期间的间隔天数
      */
     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 + "";
     }


     /**
      * 时间前推或后推分钟,其中JJ表示分钟.
      */
     public static String getPreTime(String sj1, String jj) {
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String mydate1 = "";
      try {
       Date date1 = format.parse(sj1);
       long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;
       date1.setTime(Time * 1000);
       mydate1 = format.format(date1);
      } catch (Exception e) {
      }
      return mydate1;
     }


     /**
      * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数
      */
     public static String getNextDay(String nowdate, String delay) {
      try{
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
      String mdate = "";
      Date d = strToDate(nowdate);
      long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;
      d.setTime(myTime * 1000);
      mdate = format.format(d);
      return mdate;
      }catch(Exception e){
       return "";
      }
     }


     /**
      * 判断是否润年
      * 
      * @param ddate
      * @return
      */
     public static boolean isLeapYear(String ddate) {


      /**
       * 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
       * 3.能被4整除同时能被100整除则不是闰年
       */
      Date d = strToDate(ddate);
      GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
      gc.setTime(d);
      int year = gc.get(Calendar.YEAR);
      if ((year % 400) == 0)
       return true;
      else if ((year % 4) == 0) {
       if ((year % 100) == 0)
        return false;
       else
        return true;
      } else
       return false;
     }


     /**
      * 返回美国时间格式 26 Apr 2006
      * 
      * @param str
      * @return
      */
     public static String getEDate(String str) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      ParsePosition pos = new ParsePosition(0);
      Date strtodate = formatter.parse(str, pos);
      String j = strtodate.toString();
      String[] k = j.split(" ");
      return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);
     }


     /**
      * 获取一个月的最后一天
      * 
      * @param dat
      * @return
      */
     public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd
      String str = dat.substring(0, 8);
      String month = dat.substring(5, 7);
      int mon = Integer.parseInt(month);
      if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {
       str += "31";
      } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {
       str += "30";
      } else {
       if (isLeapYear(dat)) {
        str += "29";
       } else {
        str += "28";
       }
      }
      return str;
     }


     /**
      * 判断二个时间是否在同一个周
      * 
      * @param date1
      * @param date2
      * @return
      */
     public static boolean isSameWeekDates(Date date1, Date date2) {
      Calendar cal1 = Calendar.getInstance();
      Calendar cal2 = Calendar.getInstance();
      cal1.setTime(date1);
      cal2.setTime(date2);
      int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
      if (0 == subYear) {
       if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
        return true;
      } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
       // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周
       if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
        return true;
      } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
       if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
        return true;
      }
      return false;
     }


     /**
      * 产生周序列,即得到当前时间所在的年度是第几周
      * 
      * @return
      */
     public static String getSeqWeek() {
      Calendar c = Calendar.getInstance(Locale.CHINA);
      String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
      if (week.length() == 1)
       week = "0" + week;
      String year = Integer.toString(c.get(Calendar.YEAR));
      return year + week;
     }


     /**
      * 获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号
      * 
      * @param sdate
      * @param num
      * @return
      */
     public static String getWeek(String sdate, String num) {
      // 再转换为时间
      Date dd = VeDate.strToDate(sdate);
      Calendar c = Calendar.getInstance();
      c.setTime(dd);
      if (num.equals("1")) // 返回星期一所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
      else if (num.equals("2")) // 返回星期二所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
      else if (num.equals("3")) // 返回星期三所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
      else if (num.equals("4")) // 返回星期四所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
      else if (num.equals("5")) // 返回星期五所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
      else if (num.equals("6")) // 返回星期六所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
      else if (num.equals("0")) // 返回星期日所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
      return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
     }


     /**
      * 根据一个日期,返回是星期几的字符串
      * 
      * @param sdate
      * @return
      */
     public static String getWeek(String sdate) {
      // 再转换为时间
      Date date = VeDate.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());
     }
     public static String getWeekStr(String sdate){
      String str = "";
      str = VeDate.getWeek(sdate);
      if("1".equals(str)){
       str = "星期日";
      }else if("2".equals(str)){
       str = "星期一";
      }else if("3".equals(str)){
       str = "星期二";
      }else if("4".equals(str)){
       str = "星期三";
      }else if("5".equals(str)){
       str = "星期四";
      }else if("6".equals(str)){
       str = "星期五";
      }else if("7".equals(str)){
       str = "星期六";
      }
      return str;
     }


     /**
      * 两个时间之间的天数
      * 
      * @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;
     }


     /**
      * 形成如下的日历 , 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间
      * 此函数返回该日历第一行星期日所在的日期
      * 
      * @param sdate
      * @return
      */
     public static String getNowMonth(String sdate) {
      // 取该时间所在月的一号
      sdate = sdate.substring(0, 8) + "01";


      // 得到这个月的1号是星期几
      Date date = VeDate.strToDate(sdate);
      Calendar c = Calendar.getInstance();
      c.setTime(date);
      int u = c.get(Calendar.DAY_OF_WEEK);
      String newday = VeDate.getNextDay(sdate, (1 - u) + "");
      return newday;
     }


     /**
      * 取得数据库主键 生成格式为yyyymmddhhmmss+k位随机数
      * 
      * @param k
      *            表示是取几位随机数,可以自己定
      */


     public static String getNo(int k) {


      return getUserDate("yyyyMMddhhmmss") + getRandom(k);
     }


     /**
      * 返回一个随机数
      * 
      * @param i
      * @return
      */
     public static String getRandom(int i) {
      Random jjj = new Random();
      // int suiJiShu = jjj.nextInt(9);
      if (i == 0)
       return "";
      String jj = "";
      for (int k = 0; k < i; k++) {
       jj = jj + jjj.nextInt(9);
      }
      return jj;
     }


     /**
      * 
      * @param args
      */
     public static boolean RightDate(String date) {


      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      ;
      if (date == null)
       return false;
      if (date.length() > 10) {
       sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      } else {
       sdf = new SimpleDateFormat("yyyy-MM-dd");
      }
      try {
       sdf.parse(date);
      } catch (ParseException pe) {
       return false;
      }
      return true;
     }


     /***************************************************************************
      * //nd=1表示返回的值中包含年度 //yf=1表示返回的值中包含月份 //rq=1表示返回的值中包含日期 //format表示返回的格式 1
      * 以年月日中文返回 2 以横线-返回 // 3 以斜线/返回 4 以缩写不带其它符号形式返回 // 5 以点号.返回
      **************************************************************************/
     public static String getStringDateMonth(String sdate, String nd, String yf, String rq, String format) {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      String dateString = formatter.format(currentTime);
      String s_nd = dateString.substring(0, 4); // 年份
      String s_yf = dateString.substring(5, 7); // 月份
      String s_rq = dateString.substring(8, 10); // 日期
      String sreturn = "";
      roc.util.MyChar mc = new roc.util.MyChar();
      if (sdate == null || sdate.equals("") || !mc.Isdate(sdate)) { // 处理空值情况
       if (nd.equals("1")) {
        sreturn = s_nd;
        // 处理间隔符
        if (format.equals("1"))
         sreturn = sreturn + "年";
        else if (format.equals("2"))
         sreturn = sreturn + "-";
        else if (format.equals("3"))
         sreturn = sreturn + "/";
        else if (format.equals("5"))
         sreturn = sreturn + ".";
       }
       // 处理月份
       if (yf.equals("1")) {
        sreturn = sreturn + s_yf;
        if (format.equals("1"))
         sreturn = sreturn + "月";
        else if (format.equals("2"))
         sreturn = sreturn + "-";
        else if (format.equals("3"))
         sreturn = sreturn + "/";
        else if (format.equals("5"))
         sreturn = sreturn + ".";
       }
       // 处理日期
       if (rq.equals("1")) {
        sreturn = sreturn + s_rq;
        if (format.equals("1"))
         sreturn = sreturn + "日";
       }
      } else {
       // 不是空值,也是一个合法的日期值,则先将其转换为标准的时间格式
       sdate = roc.util.RocDate.getOKDate(sdate);
       s_nd = sdate.substring(0, 4); // 年份
       s_yf = sdate.substring(5, 7); // 月份
       s_rq = sdate.substring(8, 10); // 日期
       if (nd.equals("1")) {
        sreturn = s_nd;
        // 处理间隔符
        if (format.equals("1"))
         sreturn = sreturn + "年";
        else if (format.equals("2"))
         sreturn = sreturn + "-";
        else if (format.equals("3"))
         sreturn = sreturn + "/";
        else if (format.equals("5"))
         sreturn = sreturn + ".";
       }
       // 处理月份
       if (yf.equals("1")) {
        sreturn = sreturn + s_yf;
        if (format.equals("1"))
         sreturn = sreturn + "月";
        else if (format.equals("2"))
         sreturn = sreturn + "-";
        else if (format.equals("3"))
         sreturn = sreturn + "/";
        else if (format.equals("5"))
         sreturn = sreturn + ".";
       }
       // 处理日期
       if (rq.equals("1")) {
        sreturn = sreturn + s_rq;
        if (format.equals("1"))
         sreturn = sreturn + "日";
       }
      }
      return sreturn;
     }


     public static String getNextMonthDay(String sdate, int m) {
      sdate = getOKDate(sdate);
      int year = Integer.parseInt(sdate.substring(0, 4));
      int month = Integer.parseInt(sdate.substring(5, 7));
      month = month + m;
      if (month < 0) {
       month = month + 12;
       year = year - 1;
      } else if (month > 12) {
       month = month - 12;
       year = year + 1;
      }
      String smonth = "";
      if (month < 10)
       smonth = "0" + month;
      else
       smonth = "" + month;
      return year + "-" + smonth + "-10";
     }


     public static String getOKDate(String sdate) {
      if (sdate == null || sdate.equals(""))
       return getStringDateShort();


      if (!VeStr.Isdate(sdate)) {
       sdate = getStringDateShort();
      }
      // 将“/”转换为“-”
      sdate = VeStr.Replace(sdate, "/", "-");
      // 如果只有8位长度,则要进行转换
      if (sdate.length() == 8)
       sdate = sdate.substring(0, 4) + "-" + sdate.substring(4, 6) + "-" + sdate.substring(6, 8);
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      ParsePosition pos = new ParsePosition(0);
      Date strtodate = formatter.parse(sdate, pos);
      String dateString = formatter.format(strtodate);
      return dateString;
     }


     public static void main(String[] args) throws Exception {
      try {
       //System.out.print(Integer.valueOf(getTwoDay("2006-11-03 12:22:10", "2006-11-02 11:22:09")));
      } catch (Exception e) {
       throw new Exception();
      }
      //System.out.println("sss");
     }

    展开全文
  • Java的Date类型与String类型的相互转换

    千次阅读 2018-10-12 16:30:03
    一、SimpleDateFormat的参数格式...//获取年月日时分秒,也可以只获取其中的一个,其中的中文汉字可以改为- SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); //SimpleDat...
  • 获得日期并格式化(Date转化为String) 引入包java.util.Date //获取系统当前的时间(精确到毫秒的系统当前时间) //直接调用无参构造方法就行 Date nowTime=new Date(); //java.util.Date的toString()方法已经被重写...
  • JavaString类型转换成日期类型

    万次阅读 2018-11-08 11:12:25
    JavaString类型转换成数据库中的日期类型,添加到数据库 //创建sdf对象,指定日期格式类型 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //sdf将字符串转化成java.util.Date java....
  • web开发中最常用的一个工具类,date日期-String字符串转换工具类,直接放在java类文件里面,调用即可。 源码如下: import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; ...
  • Java获取当前时间String类型和Date类型

    千次阅读 2020-05-13 16:16:10
    Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");... System.out.println("获取当前时间为String类型:"+time_string); //获取当前时间为Date类型 D..
  • SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-mm-dd”); Date date=new Date(); String dateStr = sdf.format(date); Date mydate = sdf.parse(dateStr);
  • JAVA获取当前系统时间和String转换

    千次阅读 2017-12-30 13:59:54
    获取当前系统时间和日期并格式化输出: import java.util.Date; import java.text.SimpleDateFormat; public class NowString { public static void main(String[] args) { SimpleDateFormat df = new ...
  • 1.JavaString类型转换成Data日期类型 使用import java.text.SimpleDateFormat; SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd "); String s = "2020-09-09 "; Date date = formatter.parse...
  • Java日期转星期方法及使用

    千次阅读 2018-11-30 13:50:29
    /*日期转星期*/ public static String dateToWeek(String datetime) { SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd"); String[] weekDays = { "星期日", "星期一", &...
  • JAVA字符串转日期日期转字符串

    万次阅读 2018-10-30 18:34:17
    假如把今天的日期转成字符串可用 String str = sdf.format(new Date());   这个字符串内容的格式类似2008-07-10 19:20:00。   透过这个API我们便可以随心所欲的将日期转成我们想要的字符串格式,例如希望将日期...
  • java比较String类型日期的大小

    千次阅读 2019-03-25 15:01:29
    import java.text.DateFormat; import java.text.NumberFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; public class DateUtils { /** * 字...
  • 在实际开发过程中经常会需要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候只能获取String类型的日期了,这是因为SQLite是无类型的。这样不得不...
  • Java 把 Date 转换为 String 类型

    万次阅读 2016-07-27 19:37:52
    转载请注明出处: http://blog.csdn.net/like_program/article/details/52048671 我们在写程序时,有时需要获取并显示 当前系统时间 ,这时候可以用 Date 类
  • 1.从默认时区中的系统时钟获取当前日期时间 LocalDateTime now = LocalDateTime.now(); System.out.println(now);//2020-03-16T09:31:18.018 2.LocalDateTime时间戳 LocalDateTime now = LocalDateTime.now...
  • java时间类型的转换/获取当前时间/将时间...利用java获取当前的时间(String类型,年-月-日 时:分:秒) //我要获取当前的日期 Date date = new Date(); //设置要获取到什么样的时间 SimpleDateFormat sdf = new S...
  • Java8 日期与字符串之间的相互转化

    万次阅读 2018-08-05 15:39:12
    /** * 把当前时间格式为指定格式 ... //获得当前时间 LocalDateTime ldt = LocalDateTime.now(); System.out.println(ldt); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy...
  • /** * @author YoonaLt * LocalDateTime 与 ... * 可以方便的获取与目标日期相距几年,几个月,几个星期,几个小时,几分,几秒的时间. */ public class DateUtils { private static String DETAIL_FORMAT_ST...
  • 前提回顾: 由于业务需求,需要把一些数据保存为blob数据,例如报文、文本、图片...3、可以通过java代码,把string类型转换blob存入数据库吗? 解决方法: 1、可以通过rawtohex(’’)函数,但是不能插入数据超...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 162,933
精华内容 65,173
关键字:

java获取日期转string

java 订阅