【问题标题】:Struts2 Date Tag TimeZone behaviorStruts2 日期标签时区行为
【发布时间】:2014-04-09 14:43:09
【问题描述】:

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

要将存储在 UTC 时间的 04/09/2014 11:40:17 日期转换为 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());
...
...
...

现在我从 DB 中获取值为 04/09/2014 11:40:17 。当我执行此插入时,实际时间是 04/09/2014 05:10:17 PM IST 。所以很清楚存储在DB中的时间是UTC时间。

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

user.getCreatedDateTime()

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

【问题讨论】:

    标签: java date struts2 timezone utc


    【解决方案1】:
    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" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 2012-06-25
      相关资源
      最近更新 更多