Qual é a melhor maneira de analisar uma data no formato MM / DD / AA e ajustá-la ao século atual / anterior?
Um de nossos clientes deseja poder inserir uma data com apenas 2 dígitos para o componente do ano. A data será no passado, portanto, queremos que ela funcione no século anterior se o ano de 2 dígitos for posterior ao ano atual, mas funcione no século atual se o ano de 2 dígitos for igual ou menor que o ano atual.
a partir de hoje 30/10/2008
01/01/01 = 01/01/2001
01/01/09 = 01/01/1909
Esse é um requisito estranho, e resolvi o problema, simplesmente não gosto da minha solução. Parece que há uma maneira melhor de fazer isso.
Obrigado pela ajuda.
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;
}