处理空日期字段

时间:2013-10-28 20:30:23

标签: datetime xpages

我在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返回。如何将其转换为简单的字符串值?

2 个答案:

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

偏离课程需要根据你的逻辑进行调整......