fecha java cómo llegar a cero

SimpleDateFormat

Utilice esto para convertir.

La idea es así. Se elimina el último 0 en un bucle y se deben conservar los dígitos pares, es decir, se debe conservar el último 0 de 20091010.

(Al juzgar, primero verifique si la longitud de la cadena es un número impar o par. Si es un número impar)

Luego, de acuerdo con la longitud, vaya al formato superior aaaa-MM-dd o aaaa-MM o aaaa y así sucesivamente.

Déjame escribirlo y te lo daré cuando lo termine.

clase pública StringToDate {

cadena pública stringToDate(String str){

int length=str.length();

char c="0".charAt(0);

if(str.length()2==1){

if(Character.valueOf(c).equals(Character .valueOf(str.charAt(length-1)))){

str=str.substring(0, str.length()-1);

return stringToDate(str );

}else{

return str;

}

}else{

if(Carácter .valueOf(c).equals(Character.valueOf(str.charAt(length-1)))amp;amp;

Character.valueOf(c).equals(Character.valueOf(str.charAt( longitud-2))) ){

str=str.substring(0, str.length()-2);

return stringToDate(str);

}else{

return str;

}

}

}

público estático vacío principal (String[] args) {

StringToDate std=new StringToDate();

System.out.println(std.stringToDate("200901010000"));

System.out.println(std.stringToDate("200901000000"));

System.out.println(std.stringToDate("200901010000"));

System. out.println(std.stringToDate("200910010000"));

System.out.println(std.stringToDate("200910"));

System.out.println( std.stringToDate("200910000000"));

}

}

Resultado

20090101

200901

20090101

20091001

200910

200910

Debería estar bien, simplemente determine recursivamente la longitud de la cadena, si es un número impar, se juzgará si el último dígito es 0, y si es un número par, se juzgará si los dos últimos dígitos son 0.