2

Mon May 14 2010 00:00:00 GMT+0100 (Afr. centrale Ouest)この日付形式をこの日付形式05-14-2010に解析するにはどうすればよいですか?mm-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

出力もタイムゾーンに依存することに注意してください。入力文字列で定義されたインスタントは、プログラムが印刷した日付に属するものとして私のタイムゾーンで解釈されています。「2010年5月14日」を「2010年5月14日」に変換する必要があるだけの場合、それは別の話であり、それに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 に答える