Download 文件下载控件-如何格式化日期(已创建和上次修改)

Download 文件下载控件-如何格式化日期(已创建和上次修改),download,xpages,date-format,Download,Xpages,Date Format,我正在使用FileDownload控件显示Notes文档中的附件列表 日期显示为:dd/MM/yy hh.MM-由于我的用户是丹麦人,我希望以格式显示日期:dd-MM-yyy hh:MM 如果使用SimpleDataFormat,这是非常简单的。在SSJS中,它看起来像: var date:Date = new Date(aFile.getCreated()); if(date==null) return date; return new java.text.SimpleDateFormat("

我正在使用FileDownload控件显示Notes文档中的附件列表

日期显示为:dd/MM/yy hh.MM-由于我的用户是丹麦人,我希望以格式显示日期:dd-MM-yyy hh:MM

如果使用SimpleDataFormat,这是非常简单的。在SSJS中,它看起来像:

var date:Date = new Date(aFile.getCreated());
if(date==null) return date;
return new java.text.SimpleDateFormat("dd-MM-yy hh:mm").format(date);
在FileDownload控件中,可以计算“createdValue”属性的值。但是,控件需要一个类型为“Date”的对象,该对象不允许在上面的示例中进行格式化(它只抛出一个错误500)

有什么建议吗


/John

您已经发现createdValue属性需要一个java.util.Date对象,因此更改其格式的唯一方法是更改XPage使用的浏览器区域设置(如回答所示)。使用标准下载控件,通过向每个文件添加var=“file”属性,并在createdValue属性中使用该属性,可以获得每个文件的句柄:

createdValue="new Date(file.getCreated());"
如果希望对文件列表拥有更多控制,可以使用repeat控件并将其绑定到RichText项中的文件列表:

<xp:repeat id="repeat1" rows="30" var="file" disableOutputTag="true">
    <xp:this.value><![CDATA[#{javascript:document1.getAttachmentList("files")}]]></xp:this.value>
    <xp:this.facets>
        <xp:text escape="false" disableTheme="true" xp:key="header">
            <xp:this.value><![CDATA[<table><tbody>]]>
            </xp:this.value></xp:text>
        <xp:text escape="false" disableTheme="true" xp:key="footer"><xp:this.value><![CDATA[</tbody></table>]]></xp:this.value></xp:text>
    </xp:this.facets>
    <tr>
        <td>
            <xp:text escape="true" id="computedField1" value="#{file.name}"></xp:text>
        </td>
        <td>
            <xp:text escape="true" id="computedField2">
                <xp:this.value><![CDATA[#{javascript:var date:Date = new Date(file.getCreated());
    return new java.text.SimpleDateFormat("dd-MM-yy hh:mm").format(date);}]]></xp:this.value>
      </xp:text>
    </td>
  </tr>
</xp:repeat>

]]>
]]>

顺便说一句:默认下载控件的另一个缺点是,它会在每个链接中添加一个内容处理头,因此浏览器总是询问您是否要保存或打开文件,而不是直接打开图像(例如)。

通常,NotesDateTime类是Xpage的更好解决方案,为什么每个人都在使用其他课程?如果我们在CSJS中,那么就可以了。但是对于我们的xpages,NotesDateTime可以强大地更改其格式。尝试执行ot NotesDateTime。您提到的错误500,确切地说是您遇到的错误?控件需要一个日期对象。如果我只是在公式中输入“new date()”,它会显示一个格式正确的日期。所以,我一定要这么做。如果我尝试返回除“Date”之外的任何其他类型,我会得到错误500。关键是它是一个“内置”控件,我找不到任何关于如何控制格式的文档…谢谢您的回复。正如您所看到的,我已经将区域设置正确设置为“Danish”,但是,FileDownload控件返回的格式不是我们在丹麦使用的格式:-/-否则,我早就完成了;-)也许不清楚,但我提到的公式确实是createdValue属性中的公式,我必须在其中返回日期。如果我无法控制格式是否正确,那么很明显,我可以自己编写所有代码(正如您给出的一个很好的示例)-但是,我希望控件能够在我的情况下完成此操作-标准内容处理实际上很好;-)但我很理解在其他情况下这可能是个问题。好吧,我最终自己编写了这个列表(按照你上面列出的思路)。谢谢你的帮助:-)