「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > SimpleDateFormat が「YYYY-MM-dd HH:mm」を誤って解析するのはなぜですか?

SimpleDateFormat が「YYYY-MM-dd HH:mm」を誤って解析するのはなぜですか?

2024 年 12 月 21 日に公開
ブラウズ:579

Why Does SimpleDateFormat Incorrectly Parse \

SimpleDateFormat が「YYYY-MM-dd HH:mm」を正しく解析しません

「YYYY-MM」形式の文字列を解析しようとすると-dd HH:mm" を日付に指定すると、一部の開発者は予期しない日付結果に遭遇します。これは、寛大な設定を false に設定して SimpleDateFormat クラスを使用すると発生します。

次のコード スニペットは問題を示しています。

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.");
}

このコードは間違った日付を生成します:

Sun Dec 30 08:30:00 EST 2012 (wrong)

この問題を解決するには、指定された年の形式を確認してください。 SimpleDateFormat パターンでは、大文字ではなく小文字の「yyyy」が使用されます。 "YYYY."

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);

この調整を行うことで、コードは解析されます。 「YYYY-MM-dd HH:mm」文字列を正しく入力してください。詳細については、SimpleDateFormat のドキュメントを参照してください。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3