0

タイプ「Mon Jan 14 00:00:00 GMT-12:00 2013」の日付を java.sql.Date yyyy/MM/dd Type に変換しようとしています。以下のコードを書きました。以下のコードを実行しようとすると、「解析不能な日付」エラーが発生します..以下の問題を解決するのを手伝ってください.

        DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
     try{
               java.sql.Date xdate=new java.sql.Date(df.parse("Mon Jan 14 00:00:00 GMT-12:00 2013").getTime());
System.out.println(xdate.toString());

            }catch(Exception x)
            {
                System.out.println(x.getMessage());
            }
4

5 に答える 5

3

他の回答と同様に、取得した日付文字列を解析するために間違ったパターンを使用しています。

実際にはそのパターンが必要ですが、Dateオブジェクトを必要なパターンに変換する必要があります。Dateただし、最初に、指定された日付文字列のオブジェクトを取得する必要があります。そのためには、持っている文字列と正確に一致するパターンを構築する必要があります。

日付の書式設定には 2 つの側面があります。

  • 解析- 日付文字列から日付オブジェクトへ
  • フォーマット- Date オブジェクトを Date 文字列にフォーマットする

したがって、最初に を使用DateFormat#parse()し、次にDateFormat#format()を異なるパターンで使用する必要があります。

したがって、必要なコードは次のとおりです。

String fromDate = "Mon Jan 14 00:00:00 GMT-12:00 2013";
Date date = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").parse(fromDate);

java.sql.Date toDate = new java.sql.Date(date.getTime());

System.out.println(new SimpleDateFormat("yyyy/MM/dd").format(toDate));
于 2013-01-16T18:22:02.393 に答える
1

次の単純な日付形式が必要です

DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");

その他の日付と時刻のパターン: 単純な日付形式

于 2013-01-16T18:13:38.553 に答える
1

使用しています

new SimpleDateFormat("yyyy/MM/dd")

したがってyyyy/MM/dd、日付をフォーマットで解析しようとしているときに、解析しようとしてMon Jan 14 00:00:00 GMT-12:00 2013 いる日付文字列をyyyy/MM/ddフォームに変換すると、解析されます。

于 2013-01-16T18:11:06.250 に答える
1

さて、あなたが提供した日付はあなたが提供した形式ではありません。引数としてISO文字列がありますが、フォーマッタは「yyyy / MM/dd」を予期しています。なぜこれが機能すると思ったのですか?

于 2013-01-16T18:11:06.560 に答える
0

試す

DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyyy", Locale.US);

Locale.US は、ローカル言語が英語ではなく、 と を解析する場合に必要MonですJan。私たちの場合のように、日付パーサーは言語に敏感な場合があります

于 2013-01-16T18:27:37.557 に答える