java - 从 View 条目获取 Notes 日期时间到 JAVA 日期

标签 java datetime xpages

我在 Java 方法中有这段代码:

colVal = ve.getColumnValues();
    System.out.println("Got colVal");
    System.out.println("Col values = " + colVal.toString());
    try {
        Document pDoc = ve.getDocument();
        System.out.println("Start MyDate");
        DateTime dt = (DateTime) pDoc.getItemValueDateTimeArray("ExpPayDate").get(0);
        Date pDate = dt.toJavaDate();
        pItem.setMyDate(pDate);
    } catch (Exception e) {
                        // date error
    System.out.println("setMyDate Failed "+ e.toString());
    }

日志看起来像这样:

12/09/2015 02:49:59 PM  HTTP JVM: Got colVal
12/09/2015 02:49:59 PM  HTTP JVM: Col values = [1bp8frg61ze9s, 24/09/2015 12:00:00 PM MDT, , 0.0, ---, , --- No Agent ---, , ]

我使用 ViewEntry 是因为我需要维护 View 排序顺序。 这样做的问题是 ve.getDocument() 意味着到服务器的额外访问并且可能变得相当昂贵。 所以我尝试只使用 colVal.get(1),它被视为 Notes DataTime,但 colVal.get(1).toJavaDate() 似乎不可用。

更改代码以尝试从 colVal 中获取值:

System.out.println("Got colVal");
System.out.println("Col values = " + colVal.toString());
    try {
     System.out.println("Start MyDate");
    System.out.println("Get value from colVal " + colVal.get(1).toString());
                        //pItem.setMyDate(pDate);
    } catch (Exception e)
        System.out.println("setExpPayDate Failed "  + e.toString());
} 

当我运行这个“get value from colVal”时会导致错误:

12/09/2015 03:05:55 PM  HTTP JVM: Start MyDate
12/09/2015 03:05:55 PM  HTTP JVM: setMyDate Failed java.lang.ClassCastException: lotus.domino.local.DateTime incompatible with java.lang.String

我可以根据文档执行所需的操作,但似乎无法通过 viewEntry 和 ve.getColumnValues() 进行操作。

最佳答案

直接的解决方案是您需要将对象转换为 DateTime 才能调用 toJavaDate 方法。例如:

DateTime dt = (DateTime)colVal.get(1);
Date date = dt.toJavaDate();

这是因为 getColumnValues 返回的 Vector 返回 Object 类型的值,因为它可以混合。

在这种特定情况下,还有一种方法可以直接将列值作为 Date 获取。如果您在获取列值之前调用 entry.setPreferJavaDates(true),则日期/时间值将表示为 Date 对象而不是 DateTime .无论如何,您仍然可能最终将列值强制转换为 Date,但这可能会带来一点便利。它还消除了在循环内执行 entry.recycle(colVal) 以确保回收列值中的 DateTime 的需要。

关于java - 从 View 条目获取 Notes 日期时间到 JAVA 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32543809/

相关文章:

XPages:没有单独的 DNS 条目的登录表单映射?

java - 让 Guava ArrayListMultimap 工作

java - 计算 Spark 数据集上的 Pearson 相关性

mysql - CURRENT_TIMESTAMP 以毫秒为单位

java - 开源 Java 日期和时间选择器

添加几个 jar 后,XPage 在 DDE 中变得非常缓慢......这是标准行为吗?

java - Spring上下文错误: SAXParseException cvc-complex-type. 3.2.2忽略无法解析的上下文:属性占位符

java - 游戏架构和状态设计

php - 如何在 PHP 中将 MySQL TIMESTAMP 转换为日期时间

java - 表达式语言,if then else 中的组合条件