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.