追加情報を含む日付を解析するときに「java.text.ParseException: 解析できない日付」を修正する方法

Susan Sarandon
リリース: 2024-11-16 10:45:03
オリジナル
485 人が閲覧しました

How to Fix

「java.text.ParseException: Unparseable date」例外の解決

「java.text.ParseException: Unparseable date」例外は次の場合に発生します。 SimpleDateFormat オブジェクトは、指定されたパターンに一致しない入力文字列を解析しようとします。この場合、入力文字列「Sat Jun 01 12:53:10 IST 2013」は、入力文字列に曜日などの追加情報が含まれているため、パターン「MMM d, yyyy HH:mm:ss」を使用して解析することはできません。 (土)と時間帯(IST).

解決策:

この問題を解決するには、日付の解析と印刷の両方を調整する必要があります。

Date解析:

  1. SimpleDateFormat の作成入力文字列と一致するパターンを持つオブジェクト。この場合、次のパターンを使用します:
SimpleDateFormat sdf = new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
ログイン後にコピー

このパターンには、曜日 (EE)、月 (MMM)、日 (dd)、時間 (HH) が含まれます。 、分 (mm)、秒 (ss)、タイムゾーン (z)、年 (yyyy)。このパターンは、特定の入力文字列形式に基づいてカスタマイズできます。

  1. 作成した SimpleDateFormat オブジェクトを使用して入力文字列を解析します。
Date parsedDate = sdf.parse(date);
ログイン後にコピー

日付の印刷:

日付を解析した後、目的に合わせて日付を書式設定する必要があります出力。目的のパターンで 2 番目の SimpleDateFormat オブジェクトを作成します:

SimpleDateFormat print = new SimpleDateFormat("MMM d, yyyy HH:mm:ss");
ログイン後にコピー

次に、「print」SimpleDateFormat オブジェクトを使用して解析された日付をフォーマットします:

System.out.println(print.format(parsedDate));
ログイン後にコピー

補足:

  • SimpleDateFormat にロケールを含めますコンストラクター。これにより、日付が正しい文化的慣習に従って解析され、印刷されるようになります。
  • 「IST」のようなあいまいなタイム ゾーンの略語ではなく、入力文字列で適切なタイム ゾーン名を使用してください。

以上が追加情報を含む日付を解析するときに「java.text.ParseException: 解析できない日付」を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート