当前位置: 首页 > 知识库问答 >
问题:

F:如果bean提供了时区,则convertDateTime显示错误的日期

东郭子默
2023-03-14
<h:outputText value="#{item.dateChange}">
    <f:convertDateTime pattern="dd.MM.yyyy HH:mm" timeZone="Europe/Berlin"/>
</h:outputText>
<h:outputText value="#{item.dateChange}">
    <f:convertDateTime pattern="dd.MM.yyyy HH:mm" timeZone="#{item.platform.timeZone}"/>
</h:outputText>
public TimeZone getTimeZone() {
    return TimeZone.getTimeZone("Europe/Berlin");
}

public String getTimeZone() {
    return "Europe/Berlin";
}

编辑:为了确保时区对象可用:

 <h:outputText value="#{item.platform.timeZone}"/> 

sun.util.calendar.zoneinfo[id=“欧洲/柏林”,offset=3600000,dstsavings=3600000,usedaylight=true,transitions=143,lastrule=java.util.simpletimezone[id=欧洲/柏林,offset=3600000,dstsavings=3600000,usedaylight=true,startyear=0,startmode=2,startmonth=2,startday=-1,startdayofweek=1,starttime=3600000,starttimeMode=2,endmonth=9,endday=-1,

或者简单地说:第二次尝试中的“欧洲/柏林”。

共有1个答案

梁韬
2023-03-14

正如Gimby所指出的,BalusC已经回答了一个类似的问题

由于f:标记的限制,需要customConverter。

关于这个问题的详细描述和BalsuC的示例实现可以在这里获得:JSF convertDateTime with timezone in datatable

 类似资料:
  • 对于我的一个客户,我正在处理一些非常古老的日期,例如: 0572-06-17 1000-06-17 当我将字符串转换为日期时,它有一个奇怪的时区。例子: 你可以看到时区是00:17。为什么会出现这个奇怪的时区?

  • 我想在Spring中创建一个页面,其中包含url http://myapp.com/sign-in?email=myemail@提供商。通用域名格式 是用户每次想要登录时通过电子邮件收到的一次性密码。 每当用户访问此页面时,我希望发生两件事: 检查提供的凭据是否正确。 如果是,则显示页面的超文本标记语言内容。 我已经完成了第一部分: 我需要如何更改代码才能显示主页(中的超文本标记语言文件),但前提

  • 我有一条记录,上面写着:。但是,当我执行时,视图会呈现。知道为什么吗?所有日期都会发生这种情况,总是前一天

  • 我正在使用转换到新时区UTC+3,这等于EAT时区,但Postgres(9.1)显示错误的时间 (默认时区为斯德哥尔摩) 如果将JodaTime与两个时区一起使用,则显示相同的正确结果“2015-01-13 10:40:00”。

  • org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为java.lang.IllegalArgumentException:为类com.DatabaseProject.Questor.Model.Question提供了错误类型的id。应为:class java.lang.Integer,got class java.lang

  • 如果值为空,则需要在单元格中显示一个不间断的空格。这是我的模板: 我试过这个,但不管用: 它返回值的问题是: 如果许可证号带有值,则单元格为空,行颜色如下所示。 利用卢库马的建议,它表明了这一点: 更改筛选器中的if语句后,仍然不显示非值: