ホームページ >Java >&#&チュートリアル >「MM」の代わりに「mm」を使用すると、SimpleDateFormat の解析が失敗するのはなぜですか?

「MM」の代わりに「mm」を使用すると、SimpleDateFormat の解析が失敗するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-14 20:23:11331ブラウズ

Why Does My SimpleDateFormat Parse Fail When Using

SimpleDateFormat を使用した日付形式の文字列の解析

SimpleDateFormat を使用して日付文字列を解析する場合、正しい日付と時刻のパターンに従うことが重要です。よくある落とし穴は、月の代わりに「MM」の代わりに「mm」を使用することです。

次のコードを考えてみましょう:

SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss");
String str = "2010-06-13T00:00:00";
Date date = sf.parse(str);
System.out.println(" Date " + date.toString());

ここでは、文字列「2010-06」を解析するつもりです。 -13T00:00:00」を 2010 年 6 月 13 日とします。ただし、出力には「水曜日 1 月 13 日」と表示されます。代わりに、00:00:00 EST 2010」となります。これは、SimpleDateFormat オブジェクトで指定された日付形式で月を表すのに「mm」が使用されるために発生します。

この問題を解決するには、月を示すために「mm」を「MM」に置き換える必要があります。以下の修正されたコード:

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

この修正により、コードは入力文字列を「Wed Jun 13 00:00:00 EST 2010」として正しく解析します。 SimpleDateFormat パターンの大文字の「MM」は月を表し、「mm」は分を表すことに注意してください。

以上が「MM」の代わりに「mm」を使用すると、SimpleDateFormat の解析が失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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