Muchas gracias por vuestra atención,
Lo primero de todo, hacer notar que estoy usando la JRE 1.3.1_11.
Tengo un método que devuelve una cadena representando la fecha actual en el formato "yyyy-MM-dd HH:mm:ss"; representación que uso para hacer una llamada a BD.
El método funciona bien casi siempre pero algunas veces produce una salida extraña.
Por ejemplo, creó la salida:
2005-0012-20 00:45:49
cuando la fecha de entrada era 2006-01-20 y la hora era sobre las 07:45.
Este es el código que estoy usando:
String stFechaActual=objDBAccess.getDateTimestamp();
FormatDate formatoFecha = new FormatDate(stFechaActual);
String fechaFormateada = formatoFecha.toStringForUpdate();
The methods and class variables used in my FormatDate class are:
static final SimpleDateFormat ISO1 =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
static final SimpleDateFormat DATEARQ = ISO1;
public FormatDate(String cadena) {
try {
calendario = Calendar.getInstance();
if (cadena.startsWith("'")) cadena = cadena.substring(1);
if (cadena.endsWith("'")) cadena = cadena.substring(0, cadena.length()-1);
//calendario.setTime(ISO2.parse(cadena));
calendario.setTime(DATEARQ.parse(cadena));
} catch (ParseException e) {
//objTraza.error("Fecha de entrada con formato distinto al de BBDD");
}
}
public String toStringForUpdate ()
{
return "to_date('"+this.toString()+"','YYYY-MM-DD hh24:mi:ss')";
}
public String toString() {
return DATEARQ.format(calendario.getTime());
}
El problema acontece en el método toStringForUpdate, en la llamada this.toString()
Gracias a todos por adelantado