我正在使用<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 标签检索值
最佳答案
- 使用
:
而不是.
作为分隔符; - 添加前导
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/