XPages:使用浏览器的语言环境显示DateTime值

时间:2014-04-03 14:58:17

标签: datetime xpages

我在绑定到文档数据源的XPage上运行了一些计算文本,并尝试使用SSJS显示Notes DateTime字段的日期组件。

我一直使用doc.getItemValueDateTimeArray方法,但它似乎与服务器的语言环境有关(如果我将浏览器的语言从英国更改为美国,日期格式和# 39; s仍然是dd / mm / yyyy)。

如何以符合浏览器语言设置的格式输出日期?

2 个答案:

答案 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>