顧客の 1 人が、年の部分が 2 桁だけの日付を入力できるようにしたいと考えています。日付は過去の日付になるため、2 桁の年が現在の年より後の場合は前の世紀で機能するようにしますが、2 桁の年が現在の年以下の場合は現在の世紀で機能するようにします。
2008 年 10 月 30 日現在
01/01/01 = 2001/01/01
09/01/01 = 1909/01/01
これは奇妙な要件であり、私は問題を解決しました。私は自分の解決策が気に入らないだけです。これを行うためのより良い方法があるように感じます。
助けてくれてありがとう。
public static String stupidDate(String dateString)
{
String twoDigitYear = StringUtils.right(dateString, 2);
String newDate = StringUtils.left(dateString, dateString.length() - 2);
int year = NumberUtils.toInt(twoDigitYear);
Calendar c = GregorianCalendar.getInstance();
int centuryInt = c.get(Calendar.YEAR) - year;
newDate = newDate + StringUtils.left(Integer.toString(centuryInt), 2) + twoDigitYear;
return newDate;
}