2

如何将此日期格式解析为我的意思Mon May 14 2010 00:00:00 GMT+0100 (Afr. centrale Ouest)的日期格式05-14-2010mm-dd-yyyy

它告诉我这个错误:

java.text.ParseException: Unparseable date: "Mon May 14 2010 00:00:00 GMT+0100 (Afr. centrale Ouest)"

编辑

SimpleDateFormat formatter = new SimpleDateFormat("M-d-yyyy");
newFirstDate = formatter.parse(""+vo.getFirstDate());  //here the error

提前致谢!

4

2 回答 2

5

该代码首先对字符串稍作调整,然后继续对其进行解析。它尊重时区,只是删除了“GMT”,因为这就是SimpleDateFormat它的喜好。

final String date = "Mon May 14 2010 00:00:00 GMT+0100 (Afr. centrale Ouest)"
  .replaceFirst("GMT", "");
System.out.println(
    new SimpleDateFormat("MM-dd-yyyy").format(
        new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss Z").parse(date)));

印刷:

05-14-2010

请记住,输出也是时区敏感的。您的输入字符串定义的时刻在我的时区中被解释为属于程序打印的日期。如果您只需要将“May 14 2010”转换为“05-14-2010”,那就是另一回事了,SimpleDateFormat不太适合。图书馆JodaTime会更干净地处理这种情况。

于 2012-05-23T18:55:31.477 回答
2
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test
{
    public static void main( String args[] ) throws ParseException
    {
        // Remove GMT from date string.
        String string = "Mon May 14 2010 00:00:00 GMT+0100 (Afr. centrale Ouest)".replace( "GMT" , "" );

        // Parse string to date object.
        Date date = new SimpleDateFormat( "EEE MMM dd yyyy HH:mm:ss Z" ).parse( string );

        // Format date to new format
        System.out.println( new SimpleDateFormat( "MM-dd-yyyy" ).format( date ) );
    }
}

输出:

05-13-2010
于 2012-05-23T18:45:13.573 回答