我在XPage上有一个日期字段,此控件可能包含日期或为空。在重复控制中,我有这个代码:
var doc:NotesDocument = detailData.getDocument();
var sDate = doc.getItemValue("ACAutoStart");
doc.recycle()
return "Start Date = " + sDate
如果ACAutoStart包含日期,那么它显示为[MDO/2013 12:34:15 AM MDT]如果为空,则显示为[]。据我所知,[]表示结果是一个数组,但如果我尝试使用sDate [0]则会出错。我不能使用getItemValueDateTime,因为它不喜欢null返回。如何将其转换为简单的字符串值?
答案 0 :(得分:3)
将最后一行替换为return "Start Date = " + sDate.firstElement()
。
doc.getItemValue()
返回类java.util.Vector
的对象。由于它不是数组,因此您获得的第一个元素为firstElement()
而不是[0]
。
更新:
正如您在评论中提到的,它也必须适用于空值,并添加了try:
var sDate = "";
try {sDate = doc.getItemValue("ACAutoStart").firstElement()} catch (e) {};
return "Start Date = " + sDate
答案 1 :(得分:0)
...就像另一种方式(将NotesDateTime转换为Date):
function getJavaDateData(doc:NotesDocument, field:string)
{
var item:NotesItem = doc.getFirstItem(field);
if (item != null){
var dt:NotesDateTime = item.getDateTimeValue();
if (dt != null){
return dt.toJavaDate();
}
}
return null;
}
偏离课程需要根据你的逻辑进行调整......