java - Struts2 日期标签时区行为

标签 java date struts2 timezone utc

我正在使用<s:date> struts2的标签。

转换存储的日期04/09/2014 11:40:17 UTC 时间为 IST我使用struts2的时候date标签如下:

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

它总是给我日期:04/09/2014 06:10:17 AM .

预期结果应该是:04/09/2014 05:10:17 PM .

我没有明白我错在哪里,也没有犯错误,我正在使用 hibernate获取并java.util.date存储上面使用的值

数据存储和检索的过程:

我通过hibernate将值存储在mysql中:

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

现在我从数据库获取的值为 04/09/2014 11:40:17 。当我执行此插入时,实际时间是 04/09/2014 05:10:17 PM IST 。由此可见,DB中存储的时间是UTC时间。

现在我正在检索时间并将键值对中的 map 设置为 map.put("dateregistered",c.getCreatedDateTime());

user.getCreatedDateTime()

并使用上面提到的 struts 2 标签检索值

最佳答案

  1. 使用 : 而不是 . 作为分隔符;
  2. 添加前导 0

IST (Indian Standard Time) 的正确时区是 UTC+05:30 ,然后GMT+05:30

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

关于java - Struts2 日期标签时区行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22966069/

相关文章:

java - Java中的ascii字符表示?

python - 错误如下: ValueError: cannot convert float NaN to integer

c# - 无法从字符串创建具有当前时间的日期

java - 如何从 TextField 标签更新 struts 2 列表

java - 如何在 fragment 的方法中膨胀布局

java - 如何在 Apache JClouds 中设置 HTTP header ?

java - prometheus占用JDBC连接

java - 为什么无效日期会成功解析为真实日期?

java - Struts 2 - JQuery 插件 : Spinner Value change event

java - 如何验证对 Struts2 中 JSP 页面的请求