ホームページ >Java >&#&チュートリアル >Java SimpleDateFormat が「mm」を月ではなく分として解析するのはなぜですか?それを修正するにはどうすればよいですか?

Java SimpleDateFormat が「mm」を月ではなく分として解析するのはなぜですか?それを修正するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-17 07:16:26362ブラウズ

Why Does My Java SimpleDateFormat Parse

SimpleDateFormat 解析のあいまいさが解決されました

SimpleDateFormat クラスは、Java での日付の解析に使用されます。ただし、厳密な解析ルールにより、時折エラーが発生する可能性があります。よくある問題の 1 つは、月と分の仕様の誤解です。

最近のケースでは、開発者はコード

SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss");

String str = "2010-06-13T00:00:00";

Date date = sf.parse(str);

が日付を「水曜日 1 月 13 日 00」として解析するという問題に遭遇しました。予想される「水曜日 6 月 13 日 00:00:00 EST」ではなく、「:00:00 EST 2010」 2010."

解決策

問題は日付形式文字列にあります。提供されている形式では、「mm」は分を表し、「MM」は月を表します。これを修正するには、開発者はフォーマット文字列を次のように変更するだけで済みました。

"yyyy-MM-dd'T'HH:mm:ss"

これにより、月には「MM」が使用されるようになり、コードは日付を「Wed Jun 13 00」として正しく解析するようになります。 :00:00 EST 2010."

SimpleDateFormat ドキュメントで提供されている詳細な形式指定子に注意を払うことが重要です。このような解析エラー。

以上がJava SimpleDateFormat が「mm」を月ではなく分として解析するのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。