Eso, tengo una clase que guarda la fecha según su zona horaria. Pero, la hora se guarda 12:00:00 AM. Acá la clase. Utilizo Oracle 9.
Código:
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
public class DateUtil {
public static Date getDateInTimeZone(Date currentDate, String timeZone)
{
TimeZone tz = TimeZone.getTimeZone(timeZone);
Calendar mbCal= new GregorianCalendar(TimeZone.getTimeZone(timeZone));
mbCal.setTimeInMillis(currentDate.getTime());
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, mbCal.get(Calendar.YEAR));
cal.set(Calendar.MONTH, mbCal.get(Calendar.MONTH));
cal.set(Calendar.DAY_OF_MONTH, mbCal.get(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, mbCal.get(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, mbCal.get(Calendar.MINUTE));
cal.set(Calendar.SECOND, mbCal.get(Calendar.SECOND));
//cal.set(Calendar.MILLISECOND, mbCal.get(Calendar.MILLISECOND));
return cal.getTime();
}
@SuppressWarnings("static-access")
public Date getDate() {
Date now = new Date();
String timeZone = UtilsProperty.getInstance().getStringPropertyByName("configuracion.zonahoraria");
//Date pf = Calendar.getInstance(TimeZone.getTimeZone(timeZone)).getTime();
//return pf;
return getDateInTimeZone(now, timeZone);
}
}
Este es el action donde se guarda todos los datos.
Código:
public String doActualizaDocumento(){
Long cDocumento = Util.getLong(request.getParameter("cDocumento"), 0L);
try {
Documento documento = manager.getDocumento(cDocumento);
documento.setaNombreDocumento(Util.getString(request.getParameter("aNombreDocumento"), ""));
documento.setaDescripcionDocumento(Util.getString(request.getParameter("aDescripcionDocumento"), ""));
documento.setEstado(new Estado(Util.getBigDecimal(request.getParameter("cEstado"), new BigDecimal(0))));
documento.setdFechaModificacion(dateUtil.getDate());//corregir con fecha y hora del servidor segun pais
if(manager.editDocumento(documento)){
this.setMensaje(MensajeUtil.setMensaje(MensajeUtil.TipoMensaje.SUCCESS, "Se actualizo el documento exitosamente"));
}else{
this.setMensaje(MensajeUtil.setMensaje(MensajeUtil.TipoMensaje.ERROR, "Se produjo un error al actualizar el documento"));
}
this.setDocumento(documento);
this.setEstados(cargaDatosHelper.getEstados(false));
} catch (Exception e) {
this.setMensaje(MensajeUtil.setMensaje(MensajeUtil.TipoMensaje.ERROR, "Se produjo un error al actualizar el documento"));
logger.error("Error al editar el documento ", e);
}
return SUCCESS;
}
Cabe destacar que el configuracion.zonahoraria lo obtiene de un archivo. properties, donde especifico la zona horaria a utilizar. Ya pude guardar la fecha pero no la hora. Alguien podría darme una ayuda.