在 XPage 中发现错误

Bug found in XPages

试试这个代码:

<xp:text escape="true" id="computedField4">
    <xp:this.value><![CDATA[#{javascript:
        var td= @Adjust(@Date(2015,3,1), 0, 1, 0, 0, 0, 0);
        return @Text(@Year(td))+","+@Text(@Month(td))+","+@Text(@Day(td));
    }]]></xp:this.value>
</xp:text>

预期产出:2015,4,1

实际产量:2015,3,29

更新

这解决了问题,但是有没有更短的版本:

<xp:text escape="true" id="computedField4">
    <xp:this.value><![CDATA[#{javascript:
        var cal= java.util.Calendar.getInstance();
        cal.add(java.util.Calendar.MONTH, 1);
        var td:Date= cal.getTime();
        return td.getFullYear()+","+(td.getMonth()+1)+","+td.getDate();
    }]]></xp:this.value>
</xp:text>

TIA。

我试了一下,发现我得到的是2015,4,1。你是哪个版本的Domino运行?我在 Win 64 的 9.0.1FP2 HF384 上试过了。

3 月 1 日,我无法在 Windows 和 @Date(2015,3,1) 的英国语言环境 returns 的计算字段中的 9.0.1 FP2 HF1 上重现,正如预期的那样。但这可能是一个因素http://xpages.info/XPagesHome.nsf/Entry.xsp?documentId=5655E1203988BEF0852578CB0066A339。您将跨越夏令时,以及结合本地和 UTC。 更新是更好的方法。你只使用 Java 个对象,所以不依赖于内部操作。另外,您正在处理具有日期和时间且特定于语言环境的 Calendar 对象,而不是在没有时间的情况下设置 @Date(),然后设置 运行 @Adjust,这确实并且还经历了 DST 的开始。