java.lang.NullPointerException:将当前日期分配给变量时为null



在我的ISData类中,我创建了以下方法:

public static final DateFormat IN_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");

现在,在我的TSTIMP类中,我试图将IN_DATE_FORMAT格式的当前sys日期值分配给date数据类型的变量import_date。但不知道该怎么做。我想把这个日期解析成字符串,因为我以后需要把它存储在数据库表中。目前我收到错误为java.lang.NullPointerException: null

data.import_date = InstrumentMasterData.IN_DATE_FORMAT.parse(<need to provide sysdate> as String)

下面我尝试了变量effective_date,它也是Date数据类型,它运行良好:

data.effective_date = allocDate != null ? InstrumentMasterData.IN_DATE_FORMAT.parse(allocDate as String) : null

另外,我有一个data.fund_quote_date变量,它也是Date数据类型,应该始终为null。如何将null值分配给这个可变值?

我正在尝试在in_date_FORMAT中分配当前系统日期值format转换为日期数据类型的变量import_date。但不知道如何做到这一点。

您可以使用DateFormat#format获取IN_DATE_FORMAT格式的系统日期字符串,例如

data.import_date = InstrumentMasterData.IN_DATE_FORMAT.parse(InstrumentMasterData.IN_DATE_FORMAT.format(new Date()) as String)

然而,这是不必要的使用IN_DATE_FORMAT格式化Date对象,然后将相同的格式化字符串解析回Date对象。相反,你可以简单地做:

data.import_date = new Date();

我还有data.fund_quote_date变量,也是Date数据类型并且它应该始终为null。如何将空值分配给可变的?

简单地,将null分配给它:

data.fund_quote_date = null;

注意:如果可能,停止使用过时且错误的java.util日期时间API和SimpleDateFormat。切换到现代java.time日期时间API和相应的格式API(java.time.format(。从跟踪:日期时间了解有关现代日期时间API的更多信息。

最新更新