我们的一位客户希望能够为年份部分输入只有 2 位数字的日期。日期将是过去的日期,因此如果 2 位数年份在当前年份之后,我们希望它适用于上一个世纪,但如果 2 位数年份等于或小于当前年份,则适用于当前世纪。
截至今天 2008 年 10 月 30 日
01/01/01 = 01/01/2001
01/01/09 = 01/01/1909
这是一个奇怪的要求,我解决了这个问题,我只是不喜欢我的解决方案。感觉有更好的方法来做到这一点。
谢谢您的帮助。
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;
}