XPages中发现的Bug

XPages中发现的Bug,xpages,lotus-formula,Xpages,Lotus Formula,请尝试以下代码: <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: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上试过了。

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

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

我试过了,发现我得到了2015,4,1。您正在运行哪个版本的Domino?我在Win 64上的9.0.1FP2 HF384上试用了它。

我无法在Windows和
@Date(2015,3,1)
上的9.0.1 FP2 HF1上重现英国地区的计算字段,返回预期的3月1日。但这可能是一个因素。您将跨越夏令时,并结合本地和UTC。
更新是更好的方法。您只使用Java对象,因此不依赖内部操作。另外,您正在处理既有日期又有时间且特定于区域设置的
日历对象,而不是在没有时间的情况下设置
@date()
,然后运行
@Adjust
,这样做也会跨越DST的开始。

我无法在Windows和
@date(2015,3,1)上的9.0.1 FP2 HF1上复制
在英国地区的计算字段中,按预期返回3月1日。但这可能是一个因素。您将跨越夏令时,并结合本地和UTC。
更新是更好的方法。您只使用Java对象,因此不依赖内部操作。另外,您正在处理既有日期又有时间且特定于区域设置的
日历对象,而不是在没有时间的情况下设置
@date()
,然后运行
@Adjust
,这样做也会跨越DST的开始。

我无法在Windows和
@date(2015,3,1)上的9.0.1 FP2 HF1上复制
在英国地区的计算字段中,按预期返回3月1日。但这可能是一个因素。您将跨越夏令时,并结合本地和UTC。
更新是更好的方法。您只使用Java对象,因此不依赖内部操作。另外,您正在处理既有日期又有时间且特定于区域设置的
日历对象,而不是在没有时间的情况下设置
@date()
,然后运行
@Adjust
,这样做也会跨越DST的开始。

我无法在Windows和
@date(2015,3,1)上的9.0.1 FP2 HF1上复制
在英国地区的计算字段中,按预期返回3月1日。但这可能是一个因素。您将跨越夏令时,并结合本地和UTC。

更新是更好的方法。您只使用Java对象,因此不依赖内部操作。另外,您正在处理既有日期又有时间且特定于区域设置的
日历对象,而不是在没有时间的情况下设置
@date()
,然后运行
@Adjust
,这样做也会跨越DST的开始。

我可以重现Buggers问题并获得2015,3,29。我使用的是9.0.1 FP3 Win64。这可能是一个地区问题吗?我使用的是region Sweden抱歉,我应该提到:Windows/7/64 6.1上的Domino9.0.1 FP2我将我的设置为UK。奇怪。再读一遍,系统内部似乎认为日期是2月29日,再加上一个月就产生了3月29日。我很想看看
@日期(2015,3,1)
在调整之前返回了什么。这样我们就可以看出这是一个日期问题还是日期问题,而不是调整问题。我猜是月份错了。它不知怎的认为它需要2月的天数,加28,然后返回29。我认为这是一个区域设置问题,你需要指定时区,我认为如果你加1个月和1小时,你会得到正确的日期。我可以重现Buggers问题,得到2015,3,29。我使用的是9.0.1 FP3 Win64。这可能是一个地区问题吗?我使用的是region Sweden抱歉,我应该提到:Windows/7/64 6.1上的Domino9.0.1 FP2我将我的设置为UK。奇怪。再读一遍,系统内部似乎认为日期是2月29日,再加上一个月就产生了3月29日。我很想看看
@日期(2015,3,1)
在调整之前返回了什么。这样我们就可以看出这是一个日期问题还是日期问题,而不是调整问题。我猜是月份错了。它不知怎的认为它需要2月的天数,加28,然后返回29。我认为这是一个区域设置问题,你需要指定时区,我认为如果你加1个月和1小时,你会得到正确的日期。我可以重现Buggers问题,得到2015,3,29。我使用的是9.0.1 FP3 Win64。这可能是一个地区问题吗?我使用的是region Sweden抱歉,我应该提到:Windows/7/64 6.1上的Domino9.0.1 FP2我将我的设置为UK。奇怪。再读一遍,系统内部似乎认为日期是2月29日,再加上一个月就产生了3月29日。我很想看看
@日期(2015,3,1)
在调整之前返回了什么。这样我们就可以看出这是一个日期问题还是日期问题,而不是调整问题。我猜是月份错了。它不知怎的认为它需要2月的天数,加28,然后返回29。我认为这是一个区域设置问题,你需要指定时区,我认为如果你加1个月和1小时,你会得到正确的日期。我可以重现Buggers问题,得到2015,3,29。我正在使用9.0.1