我有以下代码:
<h:outputText value="#{myDataBean.date}">
<f:convertDateTime type="both" timeStyle="short" dateStyle="short" />
</h:outputText>
如何在JSF(Richfaces)中使用客户端时区显示此dateTime元素?我想我应该使用timeZone属性,但是我应该指定什么作为它的值?
任何帮助将不胜感激。
答案 0 :(得分:4)
问题是您不知道客户端时区设置timeZone属性是什么,我能想到的唯一方法就是在Javascript中转换日期。
<f:convertDateTime>
转换器默认为UTC时间。
<h:body onload="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设置为medium才能在IE中使用。