怎样将String:20080407,转成Date:2008-04-07
现在只能将String:2008-04-07 转成Date:2008-04-07
public static Date convertDate(String adateStrteStr, String format) {
java.util.Date date = null;
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
date = simpleDateFormat.parse(adateStrteStr);
} catch (Exception ex) {
LogHome.getLog().error("", ex);
}
return date;
}

解决方案 »

  1.   

    format="yyyyMMdd" 就可以了!
      

  2.   


     SimpleDateFormat formatter = new SimpleDateFormat(format);//format格式:"yyyy-MM-dd"
            ParsePosition pos = new ParsePosition(0);
            Date strtodate = formatter.parse(adateStrteStr, pos);
      

  3.   

    import java.text.SimpleDateFormat;
    import java.util.Date;public class TestDate {
    public static Date convertDate(String adateStrteStr, String format) {
    java.util.Date date = null;
    try {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
            date = simpleDateFormat.parse(adateStrteStr);
            
            simpleDateFormat=new  SimpleDateFormat("yyyy-MM-dd");
            System.out.println(simpleDateFormat.format(date));

            
            
    } catch (Exception ex) {
      ex.printStackTrace();
    }
    return date;
    }public static void main(String[]args){
         String str="20080403";
         System.out.println(convertDate(str,"yyyyMMdd"));
       }
    }方法笨了点,等待更好的回复. 其实1楼已经回答对了.
      

  4.   

    String sDate = "20080407";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date date = sdf.parse(sDate);
      

  5.   

          SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
             Date date = new Date(); 
            String time = formatter.format(date);
      

  6.   

    simpleDateFormat.parse(Date date);
    有这个方法?看API 可是只有这个才可以转Date
     Date:    parse(String text, ParsePosition pos)  
      

  7.   

    你只要把格式变为什么样子,parse方发会给你做好的!
      

  8.   

    try{
     String sDate = "2008-04-07"; 
     SimpleDateFormat formate= new SimpleDateFormat("yyyy-MM-dd"); 
     Date date = formate.parse(sDate);
     System.out.println(date);//输出结果:Mon Apr 07 00:00:00 CST 2008
     }catch(Exception e){e.printStackTrace();}////////////////////////////////////////////////////////////////////////////////////
     try{
     String sDate = "20080407"; 
     SimpleDateFormat formate= new SimpleDateFormat("yyyyMMdd"); 
     Date date = formate.parse(sDate);
     System.out.println(date);//输出结果:Mon Apr 07 00:00:00 CST 2008
     }catch(Exception e){e.printStackTrace();}
     
    两个结果一样  所以只要格式为"yyyyMMdd" 就OK了
      

  9.   

    Date(String) 
    分配一个 Date 对象并将它初始化,使它表示由字符串 s 指定的日期和时间,该字符串由 parse 方法解释。
      

  10.   

    如果这样:
     try{
     String sDate = "20080407"; 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
     Date date = sdf.parse(sDate);
     System.out.println(date);
     }catch(Exception e){e.printStackTrace();}
    就会报异常:java.text.ParseException: Unparseable date: "20080407"
    也就是我在13楼的回答
      

  11.   

    学习 up up    public void doSomething() {
            try {
                // 指定格式的字符串转Date
                String strDate = "20080408215000";
                System.out.println(new SimpleDateFormat("yyyyMMddHHmmss").parse(strDate));            // Date转String
                Date date = new Date();
                System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));
            } catch (java.text.ParseException e) {
                e.printStackTrace();
            }
        }
      

  12.   


        public void doSomething() {
            try {
                // 指定格式的字符串转Date
                String strDate = "20080408215000";
                System.out.println(new SimpleDateFormat("yyyyMMddHHmmss").parse(strDate));            // Date转String
                Date date = new Date();
                System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));
            } catch (java.text.ParseException e) {
                e.printStackTrace();
            }
        }
      

  13.   

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    Date date = new Date(); 
    String time = formatter.format(date);
    我一直这样用
      

  14.   

    有两种思路:
    1。直接将日期字符串拆分4-2-22。转换为Date对象分别得到年月日之间用“-”连接。
      

  15.   

    public static String convertDate(String adateStrteStr) {String sDate = adateStrteStr.substring(0, 4) + "-" + adateStrteStr.substring(4, 6)  + "-" + adateStrteStr.substring(6, 8);
    return sDate;
    }如果要返回Date,也差不多。这里不给代码了。
      

  16.   

    date = java.sql.Date.valueOf(str)
      

  17.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【sss130】截止到2008-06-25 09:51:15的历史汇总数据(不包括此帖):
    发帖数:18                 发帖分:530                
    结贴数:5                  结贴分:170                
    未结数:13                 未结分:360                
    结贴率:27.78 %            结分率:32.08 %            
    楼主该结一些帖子了
      

  18.   

    /** 
        *将某个日期以固定格式转化成字符串 
        *@param date 
        *@return str 
        */ 
        public String dateToStr(java.util.Date date) 
        { 
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
          String str = sdf.format(date); 
          return str; 
        } 
    我来写个相反的。
      

  19.   

    package com.suypower.listDemo;import java.text.ParsePosition;
    import java.text.SimpleDateFormat;
    import java.util.Date;public class DateFormat {
    public static void main(String[] args)
    {
    // 怎样将String:20080407,转成Date:2008-04-07 
    try{
    String adateStrteStr="20080407";
    SimpleDateFormat formatter = new SimpleDateFormat("yyyymmdd");//format格式:"yyyy-MM-dd"
            ParsePosition pos = new ParsePosition(0);
            Date strtodate = formatter.parse(adateStrteStr, pos);
            System.out.println(strtodate);
            }catch(Exception e)
            {
             e.printStackTrace();
            }
            String adateStrteStr="20080407";
            String s2Date = adateStrteStr.substring(0, 4) + "-" + adateStrteStr.substring(4, 6)  + "-" + adateStrteStr.substring(6, 8); 
            System.out.println(s2Date);
    }
    }
      

  20.   

    String sDate = "20080407"; 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
    Date date = sdf.parse(sDate);
      

  21.   

    String sDate = "20080407"; 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
    Date date = sdf.parse(sDate);
      

  22.   

    public Date String2Date(String string,String pattern) throws ParseException{
    SimpleDateFormat sdf = new SimpleDateFormat(pattern);
    Date date = sdf.parse(string);
    return date;
    }
      

  23.   

    看来大家都没有去写代码呀  不要以为问题简单着
    里面N多人写的都没有转成功  格式(yyyy-MM-dd)
      

  24.   

    牛呀,楼上的大大们,你们对api真是太熟悉了!佩服死了哇!
      

  25.   

    同过util包和sql包的date和字符串相关转换方法
      

  26.   

    即然已经可以将String:2008-04-07 转成Date:2008-04-07了只要先将String:20080407转换成String:2008-04-07 就可以了吧
      

  27.   


    String sDate = "20080407"; 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
    Date date = sdf.parse(sDate);
      

  28.   

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
    date = simpleDateFormat.parse(adateStrteStr);
      

  29.   

    有部分人的回答是错的。我晕。
    String date="20090812";
    SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
    ParsePosition p=new ParsePosition(0);
    Date d=sd.parse(date,p);

    System.out.println(d);
    结果出来的是null建议LZ
    String date="20090812";
    SimpleDateFormat sd=new SimpleDateFormat("yyyyMMdd");
    Date d=sd.parse(date);

    System.out.println(d);
    正确
      

  30.   

    看错了。请用这段代码:
        public static void main(String[] args) {
           Date dt=new Date();
           String str=dt.toLocaleString();
           System.out.println (str);
           SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
           String s=sdf.format(dt);
          System.out.println(s);
        }
    }
      

  31.   

    simpleDateFormat=new  SimpleDateFormat("yyyyMMdd"); 
      

  32.   

    唉 各位大虾们 不是那么简单的问题 人家说了 date ---> String 当然直接format就可以了 ,孰不知 String------>Date 却不是这么回事 ,如果你parase(String str)那你得到 的结果是Wed Aug 12 00:00:00 CST 2009  这里应该重写ToString方法。把他覆盖才可以的。
      

  33.   

    今天和楼主遇到了同样的问题,想了半天,楼主是要转成日期类型的1989-09-09,是存入数据库的,楼上大部分同志都没看清干嘛的,我把代码贴出来,供后来者学习。import java.text.ParseException;
    import java.text.ParsePosition;
    import java.text.SimpleDateFormat;
    import java.sql.Date;public class test {
    public static void main(String[] args) {
    // 怎样将String:20080407,转成Date:2008-04-07
    try {
    String adateStrteStr = "20080407";
    SimpleDateFormat formatter = new SimpleDateFormat("yyyymmdd");// format格式:"yyyy-MM-dd"
    ParsePosition pos = new ParsePosition(0);
    java.util.Date strtodate = formatter.parse(adateStrteStr, pos); Date date = new Date(strtodate.getTime());// java.sql.Date System.out.println(date);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }}
      

  34.   

    Sun, 27 Mar 2011 13:41:00 +0800 (CST)
    这种的怎么转成Date呢....
      

  35.   

    import java.util.Date;
    import java.test.ParseException;
    import java.test.SimpleDateFormat;
    public class Test{
       public static void main(String[] args){
           SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
           Date date = dateExchange("20080407");
           System.out.println(sdf.format(date));
       }
       public static Date dateExchange(String str){
          Date date = new Date();
          if(str==null||("").equals(str)){
             return date; 
          }
          else{
             SimpleDateFormat sdf = new SimpleDateFormat();
             sdf.applyPattern("yyyyMMdd");
             try{
                date=sdf.parse(str);
             }
             catch(ParseException e){
                e.printStackTrace();
             }
          }
          return date;
       }
    }