You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中判断Cassandra存储的Timestamp空值失败问题求助

问题分析与解决方案

你的核心问题出在调用toString()的时机错误——如果session.getAttribute("deliveryDate")本身就是null,执行toString()的时候会直接抛出NullPointerException,根本走不到后面的null判断逻辑,这就是你的if条件看似“不生效”的原因。

修正后的代码

先判断属性是否为null,再调用toString():

Object deliveryDateObj = session.getAttribute("deliveryDate");
if(deliveryDateObj != null){
    String delidate = deliveryDateObj.toString();
    ///////////////date convertion/////////////////
    long unixSecondsfrom = Long.parseLong(delidate);
    Date datefrom = new java.util.Date(unixSecondsfrom);
    SimpleDateFormat sdffrom = new java.text.SimpleDateFormat("yyyy-MM-dd");
    String formattedFromDate = sdffrom.format(datefrom);
    ///////////////date convertion/////////////////
    page.set("deliveryDate", formattedFromDate);
}else{
    page.set("deliveryDate", "");
}

额外优化建议

  • 如果存在deliveryDate不为null,但转换为字符串后是空值的情况,可以补充空字符串判断:
if(deliveryDateObj != null && !deliveryDateObj.toString().trim().isEmpty()){
    // 你的日期转换逻辑
}else{
    page.set("deliveryDate", "");
}
  • 注意SimpleDateFormat是线程不安全的,在Web这类多线程环境中,建议每次创建新实例,或者改用Java 8+提供的线程安全类DateTimeFormatter来处理日期格式化。

内容的提问来源于stack exchange,提问作者Boopathi D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:34:44