我在绑定到文档数据源的XPage上运行了一些计算文本,并尝试使用SSJS显示Notes DateTime字段的日期组件。
我一直使用doc.getItemValueDateTimeArray方法,但它似乎与服务器的语言环境有关(如果我将浏览器的语言从英国更改为美国,日期格式和# 39; s仍然是dd / mm / yyyy)。
如何以符合浏览器语言设置的格式输出日期?
答案 0 :(得分:1)
getItemValueDateTimeArray()
方法返回java.util.Vector
个值的列表(确切地说NotesDateTime
)。如果您将java.util.Date
对象传递给它,XPages运行时将仅遵循浏览器的语言设置。
您可以使用几种方法。
将计算字段直接绑定到文档的字段(推荐方法):
<xp:text
escape="true"
id="computedField1"
value="#{document1.$revisions}">
</xp:text>
使用toJavaDate()
类的NotesDateTime
方法返回java.util.Date
:
<xp:text
escape="true"
id="computedField1"
value="#{javascript:var doc = document1.getDocument();
var dt:NotesDateTime = doc.getItemValueDateTimeArray('$revisions').get(0);
return dt.toJavaDate();}">
</xp:text>
获得java.util.Date
对象后,您还可以在字段中添加转换器以格式化日期,但上面的示例已经听取了浏览器的区域设置。
答案 1 :(得分:0)
尝试添加转换器(直接显示数据源值,而不使用doc.getItemValueDateTimeArray):
<xp:text escape="true" id="computedField1" value="#{document1.dateField}">
<xp:this.converter>
<xp:convertDateTime type="date"></xp:convertDateTime>
</xp:this.converter>
</xp:text>