Amigos, tengo un problema de URGENCIA.
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();
}
}
En fin, el caso es que cuando selecciono la fecha desde GWT (Javascript), está es enviada al servidor con el uso horario de la maquina cliente (Realmente desconocia este comportamiento). Por ejemplo:
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...