编程语言
首页 > 编程语言> > java – 在JSF中使用客户端时区显示dateTime值

java – 在JSF中使用客户端时区显示dateTime值

作者:互联网

我有以下代码:

<h:outputText value="#{myDataBean.date}">
    <f:convertDateTime type="both" timeStyle="short" dateStyle="short" />
</h:outputText>

如何在JSF(Richfaces)中使用客户端时区显示此dateTime元素?我想我应该使用timeZone属性,但是我应该指定什么作为其值?

任何帮助将不胜感激.

解决方法:

问题是您不知道客户端时区设置timeZone属性是什么,我能想到的唯一方法就是在Javascript中转换日期.

< f:convertDateTime>转换器默认为UTC时间.

<h:body onl oad="setTimezoneDates();" >
    <h:form id="myform">
      <h:outputText value="#{indexBean.today}" id="mydate">
        <f:convertDateTime type="both" timeStyle="short" dateStyle="medium" />
      </h:outputText>
    </h:form>
</h:body>

然后使用Javascript将您的UTC日期/时间转换为客户端本地日期/时间并将其替换为页面.

function setTimezoneDates() {
    var strDate = document.getElementById("myform:mydate").innerHTML + " UTC";
    var d = new Date(strDate);                                      
    document.getElementById("myform:mydate").innerHTML = d.toLocaleString();
}

输出日期仍然需要格式化,并且可能有更好的方法在Javascript中执行此操作.另请注意,我必须设置< f:convertDateTime> dateStyle为中等,以便在IE中工作.

标签:java,jsf,client,richfaces
来源: https://codeday.me/bug/20190626/1295369.html