なぜこれが起こるのですか?月と日については、Javaは前の有効な月と日を想定していると思いますが、年が2である理由がわかりません。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Date result = sdf.parse("0000/00/00");
System.out.println(result.toString());
出力は次のとおりです。
Sun Nov 30 00:00:00 GMT 2
グレゴリオ暦には0年がありません。
0年目は1BCE(西暦前、BCとも呼ばれます)に対応します。
月に0、日に0を指定するため、前月と前年度にロールバックします。
つまり、紀元前0002年11月30日です。
Date#toString
BCE / CEサフィックスは含まれません。ほとんどの場合、それは不要です。
はるか昔の日付で作業する場合は、歴史家に相談する必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加