String
を "dd-MM-yy"形式でDate
オブジェクトに解析しようとしています。問題は、それが日付の世紀を推測しようとしていることです。DateFormatを意図する世紀を推測するには?
01から31に指定すると、年は2000年代(21世紀)と解釈され、32年生は99年が1900年代(20世紀)と解釈されます。
SimpleDateFormat fm =new SimpleDateFormat("dd-MM-yy");
String datestr="21-11-31";
try {
Date date= fm.parse(datestr);
System.out.println(date);
} catch (ParseException e) {
}
誰でも手伝ってもらえますか?私は21世紀だけでうまく働いているとどのように指定することができますか?私は、文字列を操作するか、条件に基づいて日付をシフトするようなトリックを探すことを試みているわけではありません。 documentationから
を印刷します。 's /([0-9] {2} - [0-9] {2}) - ([0-9] {2})/ $ 1-20 $ 2 /'です。 – zebediah49
なぜ私は入力が短い年式であるのか不思議です。あなたは長い年の形式で入力を得ることができますか?別のオプションは、日付を解析する前にregexを使用してyearフィールドに "20"を追加することです。 ( " - (?! - )"、 "-20") – nhahtdh
私は文字列操作だけで実装しています。それはAPIの方法があるかもしれないと思ったのです – Edge