我有一个String,要转换成这个格式“yyyy-MM-dd hh:mm:ss”然后插入数据库
而我的String是这样的 String s = "05/May/2007:08:16:57 +0800";
请问我该怎么转换啊?
我是这样写的,不过不行报错
 DateFormat dff = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 String s = "05/May/2007:08:16:57 +0800";
 java.util.Date fime_date = dff.parse(s);
 System.out.println("fime_date:"+fime_date);
要怎么写啊?在线等!!!!!!!帮忙啊!!

解决方案 »

  1.   

    String s = "05/May/2007:08:16:57 +0800";你这个错误,完全是因为上面这个字符串有问题。无法把上面的字符串格式化成你想要的东西。我不知道你这个字符串是手写的,还是从别的地方获取的;不过你要是想想办法把这个字符串改一下,应该就可以了。还有,java.util.Date fime_date = dff.parse(s); 这个地方要进行异常捕捉(用try、catch)
      

  2.   

    String s = "05/May/2007:08:16:57 +0800";
    我是从一个TXT取出的时间,那我要怎么样变换成这个yyyy-MM-dd hh:mm:ss格式的呢?
    我在方法里面意见捕捉异常了!!!
      

  3.   

    这个字符串是挺奇怪的,它是用下面的format来格式化的
    SimpleDateFormat dateformat = new SimpleDateFormat("dd/MMM/yyyy:hh:mm:ss Z");
    里面的Z是timezone
    System.out.println(dateformat.format(new Date()));
    如果在英文操作系统下执行结果是
    08/May/2007:03:55:19 -0700
    如果在中午操作系统下执行结果是
    08/五月/2007:03:55:19 +0800
    所以你这个05/May/2007:08:16:57 +0800 不太对,不知道你怎么得到的,或者你的timezone设的部对.
    如果要转换格式的话如下:
    SimpleDateFormat dateformat = new SimpleDateFormat("dd/MMM/yyyy:hh:mm:ss Z");
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    try {
    System.out.println(format.format(dateformat.parse("05/五月/2007:08:16:57 +0800")));
    } catch (ParseException e) {
    e.printStackTrace();
    }
      

  4.   

    如果你不想改变自己得到的值,我帮你补充楼上的方法如下
    String s = "05/May/2007:08:16:57 +0800";
        String ss="";
        if(s.substring(3,6).equals("May"))
        {
          ss=ss+s.substring(0,3);
          ss=ss+"五月";
          ss=ss+s.substring(6,s.length());      SimpleDateFormat dateformat = new SimpleDateFormat(
              "dd/MMM/yyyy:hh:mm:ss Z");
          SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
          try {
            ss=format.format(dateformat.parse(ss));
          }
          catch (ParseException e) {
            e.printStackTrace();
          }    }    System.out.println(ss);
    其他月的判断你自己写CASE吧
      

  5.   

    我解决问题了,应该是这样的。谢谢voxer(voxer)啦
    SimpleDateFormat dateformat = new SimpleDateFormat
    ("dd/MMM/yyyy:hh:mm:ss Z",Locale.ENGLISH);SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

    System.out.println(format.format(dateformat.parse("05/May/2007:08:16:57 +0800")));
     
      

  6.   

    String s = "05/May/2007:08:16:57 +0800";这种方式你只能substring了,然后是组合截取下来的字符串组合成你要的格式了。没有别的捷
    径了。还有个就是要确保你月份的东西,产生的是固定的,然后根据相应的月份生成数值型就可以了