Convertir datetime a string

Recupero una fecha de una base de datos de tipo date time creo un método para poder recuperar el formato yyyyMMdd la primera comparación de que sea diferente de vacío lo hace pero la segunda no la respeta, pienso que es porque la fecha es tipo datetime, como puedo convertir esa fecha a string para poder comparar que sea vacío o no,
en ocasiones la base de datos es null es ahí donde quiero agregarle una fecha que es tipo string pero no lo hace quisiera saber donde estoy mal
String fechaFinVig=(arsTmp.getString(14));     //recupero las fechas de la BD
//System.out.println(fechaFinVig);
if(!fechaFinVig.equals("")){                              //si es diferente de vacio
dia = fechaFinVig.substring(8,10);
mes = fechaFinVig.substring(5,7);
ano = fechaFinVig.substring(0,4);
}else{
fechaFinVig=this.fechaHoyS();                        //si no es vacio agrego la fecha del sistema
dia = fechaFinVig.substring(6,8);
mes = fechaFinVig.substring(4,6);
ano = fechaFinVig.substring(0,4);
}
fechaVF=ano+mes+dia;

1 respuesta

Respuesta
1
Parece que el problema ocurre porque tu variable fechaFinVig no esta viniendo vacía... cuando haces esto: System. Out.println(fechaFinVig); ... ¿Qué te muestra la consola? Posiblemente hayan caracteres de espacios que cuando se muestran por la consola, parece como si el String estuviera vacío... de todos modos para ayudarte un poco la forma en que estas haciendo esto no me parece la mejor... así que te sugiero que le eches un vistazo a esta pregunta y veas como es la mejor forma de convertir datetime...
http://www.todoexpertos.com/mitodoexpertos/expert/questions/view/2023722/validacion-de-una-fecha
Hola nuevamente creo que no hice bien la pregunta la situación es:
Tengo 3 registros en una BD donde en el campo VigFin aparecen 2 campos llenos con una fecha y en el tercero es null
String myStringDate = (arsTmp.getString(14));
al imprimir myStringDate me da como resultado:
2008-12-31 00:00:00.0
2007-12-31 00:00:00.0
null
con los campos que estan llenos no tengo problema para realizar un substring() y obtener un formato yyyyMMdd
el problema es cuando es null porq ahi quiero agregarle la fecha q aparece en mi sistema pero no lo imprime es cuando hago
if(!myStringDate.equals("")){
dia = myStringDate.substring(8,10);
mes = myStringDate.substring(5,7);
ano = myStringDate.substring(0,4);
}else{
myStringDate = this.fechaHoyS();
dia = myStringDate.substring(6, 8);
mes = myStringDate.substring(4, 6);
ano = myStringDate.substring(0, 4);
}
myStringDate=ano+mes+dia;
Cuando imprimo myStringDate solo imprime las dos fechas que tienen el campo lleno
20081231 y 20071231
Y ya no regreso la fecha del sistema por ser null
entonces mi pregunta es como hacer o decirle al sistema que cuando encuentre un campo null ponga la fecha del sistema que traigo...
Agradezco el tiempo que tomes para leer mi mail SALUDOS CORDIALES...
Ahora si te explicaste bien, esto arreglara el problema:
myStringDate = myStringDate.trim();
if( myStringDate.equals("") || myStringDate.equalsIgnoreCase("null") ){
myStringDate = this.fechaHoyS();
dia = myStringDate.substring(6, 8);
mes = myStringDate.substring(4, 6);
ano = myStringDate.substring(0, 4);
}else{
dia = myStringDate.substring(8,10);
mes = myStringDate.substring(5,7);
ano = myStringDate.substring(0,4);
}
Suerte y no olvides finalizar la pregunta!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas