我从dbf文件中读取数据后得到了某列文本数据是"Wed Sep 7 01:10:00 CST 2005",请问如何转换成日期型,例如我是这样尝试的:
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
java.util.Date date= sdf.parse("Wed Sep 7 01:10:00 CST 2005");系统提示:Unparseable date: "Wed Sep 7 01:10:00 CST 2005"

解决方案 »

  1.   

    Date da = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String dateString = sdf.format(da);
    通过修改yyyy-MM-dd可得到所需的日期文本形式
      

  2.   

    public class 解析日期字符串 { /**
     * @param args
     */
    public static void main(String[] args) {
    Date 日期对象 = new Date("Wed Sep 7 01:10:00 CST 2005");
    System.out.print((日期对象.getYear()+1900)+"-"+(日期对象.getMonth()+1)+"-"+日期对象.getDate());
    }
    }
      

  3.   

    to: LuckyBall(一天只回一贴) 
    你的方法是我最初试过的,你有没有试一下,这样子是有问题的
    如果把时间变成"Wed Sep 7 10:01:20 CST 2005",看看结果是什么,应该是"2005-9-8"还有其他办法吗?
      

  4.   

    CST 为美国中央时区 GMT为 格林尼治标准时间
      

  5.   

    new Date(Wed Sep 7 10:01:20 CST 2005) 就把美国时间转为 当前时区的时间
      

  6.   

    CST相当于GMT-0600,先把它变成GMT+0800,
    加上14小时就OK了。
    Calendar d=Calendar.getInstance();
    d.setTime(new Date("Wed Sep 7 02:10:11 GMT+0800 2005"));
    System.out.println(d.getTime());
      

  7.   

    Calendar d=Calendar.getInstance();
    d.setTime(new Date("Wed Sep 7 01:10:00 CST 2005"));
    long dis=d.getTime().getTime();
    dis-=1000*60*60*14;                    
    d.setTimeInMillis(dis);
    System.out.println(d.getTime());
      

  8.   

    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.US);// 默认Locale是中国,所以上面的英文是转换不了的。
    java.util.Date date= sdf.parse("Wed Sep 7 01:10:00 CST 2005");
      

  9.   

    import java.util.*;
    public class GetDate
    {
    public static void main(String[] args)
    {
    Date d=new Date("Wed Sep 08 15:39:21 CST 2005");
    int year=d.getYear()+1900;
    int month=d.getMonth()+1;
    int day=d.getDate()-1;
    System.out.println(year+"-"+month+"-"+day);
    }
    }
    OR
      

  10.   

    如果需要把时间转换到中国的时区,这样处理        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.US);
            try {
                TimeZone tz=TimeZone.getTimeZone("US/Central");
                sdf.setTimeZone(tz);
                java.util.Date date= sdf.parse("Wed Sep 7 01:10:00 CST 2005");
                SimpleDateFormat format1 = new SimpleDateFormat("EEE MMM yyyy/MM/dd HH:mm:ss");
                format1.setTimeZone(TimeZone.getTimeZone("GMT-8:00"));
                System.out.println(format1.format(date));
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }其中使用了不同的 TimeZone让DataFormat去转换。。