java date struts2 timezone utc

java - Struts2 Date Tag TimeZone comportamiento



utc (1)

Estoy usando <s:date> etiqueta <s:date> de struts2.

Para convertir una fecha almacenada 04/09/2014 11:40:17 en hora UTC a hora IST , utilicé la etiqueta de date struts2 como se indica a continuación:

<s:date name = "dateregistered" format = "MM/dd/yyyy HH:mm:ss a" timezone = "GMT+5.30" />

y siempre me da la fecha: 04/09/2014 06:10:17 AM .

El resultado esperado debería ser: 04/09/2014 05:10:17 PM .

No estoy llegando a donde estoy equivocado y estoy cometiendo un error, estoy usando hibernate para buscar y java.util.date para almacenar el valor que se usa arriba

El proceso de cómo se almacenaron y recuperaron los datos:

Almacenaba el valor en mysql a través de Hibernate:

TimeZone.setDefault(TimeZone.getTimeZone("Etc/UTC")); user.setCreatedDateTime(new java.util.Date()); ... ... ...

Ahora recibo el valor de DB como 04/09/2014 11:40:17 . Cuando realicé esta inserción, el tiempo real fue 04/09/2014 05:10:17 PM IST . Por lo tanto, se borra que el tiempo que se almacena en DB es hora UTC.

Ahora estoy recuperando el tiempo y estableciendo en el mapa el par de valores clave como map.put("dateregistered",c.getCreatedDateTime());

user.getCreatedDateTime()

y recuperar el valor usando la etiqueta struts 2 como se mencionó anteriormente


  1. Uso : lugar de . como separador;
  2. Agregue un 0 líder.

El TimeZone correcto para IST (Indian Standard Time) es UTC+05:30 , luego GMT+05:30 ;

<s:date name = "dateregistered" format = "MM/dd/yyyy HH:mm:ss a" timezone = "GMT+05:30" />