java - 无法在日期中传递空值

标签 java

我需要比较查询中的两个值(日期)。

String myFormatString = "yyyyMMdd";
SimpleDateFormat df = new SimpleDateFormat(myFormatString);

(查询)

Date date1 = df.parse(rs.getString(8));
Date date2= df.parse(rs.getString(9));

实际上我可以从查询中获取我想要的值(日期)并可以传递到 日期 1 和日期 2 。但是当我从数据库中获取 date2 的空值时, 我收到“NullPointerException”错误。我需要比较日期 1 和日期 2 然后 将设置较大的报告日期。有什么想法吗?

<小时/>

亲爱的大家,感谢您的建议。这对我来说真的很有帮助。最后我找到了解决的方法。

try {
        Date date1 = df.parse(rs.getString(8));
        Date date2 = df.parse(rs.getString(9));
        if(date1.compareTo(date2) > 0)
         { Date = rs.getString(8);
         }
         else if(date1.compareTo(date2) < 0)
         {
          Date = rs.getString(9);
          }
             else
            {
         Date = rs.getString(8);
            }


        } catch (NullPointerException ex) {
        Date=rs.getString(8);
       }

最佳答案

如果您的数据存在数据库会为 date2 返回 null 的情况,那么最好使用异常处理:

try {
    Date date1 = df.parse(rs.getString(8));
    Date date2 = df.parse(rs.getString(9));
    ...
} catch (NullPointerException ex) {
    // Do something/nothing if date2 is null
}

关于java - 无法在日期中传递空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9073864/

相关文章:

java - 两个 fragment 之间的通信。我没有对任何 fragment 使用任何已定义的 View 。我只是在运行时添加 fragment

java - Tomcat9 Log4j2 - 两个服务器之间的日志记录不同

Java Spring Web 服务客户端故障处理

java - 使用 JPA 和 Hibernate 将 Java boolean 值映射到 Oracle Number 列

java - 仅向客户端共享 getter 方法的最佳方法是什么?

java - 如何使 jtable 单元格监听另一个单元格的更改

java - 在 Java 中对 long 进行位移

java - 如何以跨平台方式打开带有主题和正文的默认邮件程序?

java - Statement.setFetchSize(nSize) 方法在 SQL Server JDBC 驱动程序中的真正作用是什么?

java - GWT DataGrid 不显示,CellTable 却显示