SimpleDateFormat が「YYYY-MM-dd HH:mm」文字列に対して間違った日付を生成するのはなぜですか?

Patricia Arquette
リリース: 2024-11-02 20:43:02
オリジナル
424 人が閲覧しました

Why Does SimpleDateFormat Generate an Incorrect Date for a

SimpleDateFormat が YYYY-MM-dd HH:mm 文字列に対して間違った日付時刻を生成する

問題:

SimpleDateFormat を使用して「YYYY-MM-dd HH:mm」形式の文字列を解析すると、予期しない日付が返されます。

例:

<code class="java">Date newDate = null;
String dateTime = "2013-03-18 08:30";
SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH);
df.setLenient(false);
try {
    newDate = df.parse(dateTime);
} catch (ParseException e) {
    throw new InvalidInputException("Invalid date input.");
}</code>
ログイン後にコピー

実際の結果:

Sun Dec 30 08:30:00 EST 2012

期待される結果:

2013-03-18 08:30:00

解決策:

問題は SimpleDateFormat パターン文字列にあります。年の形式指定子は、「YYYY」ではなく「yyyy」である必要があります。

修正コード:

<code class="java">SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);</code>
ログイン後にコピー

この変更により、年が確実に解析されるようになります。予期される形式「YYYY-MM-dd HH:mm」に合わせた 4 桁の年。

以上がSimpleDateFormat が「YYYY-MM-dd HH:mm」文字列に対して間違った日付を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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