gpt4 book ai didi

java - f :convertDateTime displays wrong Date if timezone is provided by a bean

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:04:50 24 4
gpt4 key购买 nike

虽然将时区指定为字符串文字,但效果完美:

<h:outputText value="#{item.dateChange}">
<f:convertDateTime pattern="dd.MM.yyyy HH:mm" timeZone="Europe/Berlin"/>
</h:outputText>

通过 bean 提供值不起作用(不应用到 UTC 的时间偏移 1h 和夏令时 1h)

<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="Europe/Berlin",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=143,lastRule=java.util.SimpleTimeZone[id=Europe/Berlin,offset =3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay= -1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]]

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

最佳答案

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

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

此处提供了问题的详细描述和 BalsuC 的示例实现: JSF convertDateTime with timezone in datatable

注意:那里提供的转换器期望 bean 返回一个描述 timeZone 而不是 TimeZone 对象的字符串。

关于java - f :convertDateTime displays wrong Date if timezone is provided by a bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23566899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com