Estoy usando GWT + JSP / Tomcat
Tengo problemas para registrar una Fecha que es procesada con GWT, pensé que era problemas de Serialización de GWT pero nó, entre en el grupo de GWT y ya me enteré que no es problema de Serialización..
Aqui les va el fragmento de codigo donde hago la captura de una fecha a traves del Evento onValueChange del objeto DatePicker de GWT:
Código PHP:
@Override
public void onValueChange(ValueChangeEvent<Date> event) {
// TODO Auto-generated method stub
DateBox box = (DateBox) event.getSource();
Date Val = (Date) box.getValue();
Date date = new Date();
if(Val.before(date)){
Window.alert("Fecha inválida, la fecha debe ser posterior a la de hoy");
box.setValue(date);
}else{
// TimeZone 270 = GMT-4:30
DateTimeFormat dateFormat = DateTimeFormat.getFormat("dd/MM/yyyy H:mm:ss ZZZZ");
TimeZone nTime = TimeZone.createTimeZone(270);
// La Variable de "Visible" es de tipo Long
Visible = dateFormat.parse(dateFormat.format(Val,nTime)).getTime();
}
}
Si Selecciono, en el DataPicker 05/11/2009 desde un PC/WINXP, al servidor llega la fecha: 04/11/2009 - 23:30:00.
Evidentemente el problema es de uso horario, como lo compruebo ?
El sistema está hecho para Venezuela, y la conf GMT de Venezuela es ahora -4:30 pero resulta que en XP da el problema ya que XP no tiene soporte para el cambio de horario que se realizó en Venezuela, por lo tanto sigue siendo GMT -4:00. El inconveniente es que aqui en Venezuela muchisima gente usa XP, y por ese motivo tengo que hacer el calculo de horario para que el servidor me tome la fecha correta.
¿ Alguien sabe como hacer estos cambios de horario?
- He buscado info acerca del Objeto TimeZone, pero no he logrado solucionar, el servidor me sigue tomando la fecha errada.
En el código, intente usar el TimeZone con el ID 270 = "America/Caracas" (Saque ese ID de otra aplicación que hice en JAVA), para instanciar el TimeZone pero aun así en Windows XP sigue sin funcionar.
PD: Se me ocurrió, agregarles 1800 seg = 1/2 Hora + a la fecha que llega al servidor, pero esta sería una forma no muy elegante de solventarlo, ya que el sistema posiblemente sea usado en otras partes del mundo y seria cambiar ese codigó por país (Prefiero hacer dinamicamente el cambio de uso horario)
En espera de una generosa ayuda de orientación, me despido...
Gracias...