【问题标题】:java.lang.NullPointerException: null while assigning current date to variablejava.lang.NullPointerException:将当前日期分配给变量时为空
【发布时间】:2020-08-18 12:55:30
【问题描述】:

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

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

现在在我的TSTIMP 类中,我试图将IN_DATE_FORMAT 格式的当前sys 日期值分配给变量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 变量,它也是日期数据类型,它应该始终为空。我怎样才能给这个变量分配空值?

【问题讨论】:

    标签: java date parsing groovy nullpointerexception


    【解决方案1】:

    我正在尝试在 IN_DATE_FORMAT 中分配当前的 sys 日期值 格式为变量 import_date,它是 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 变量,它也是日期数据类型 它应该始终为空。我如何为此分配空值 变量?

    只需将null 分配给它:

    data.fund_quote_date = null;
    

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

    【讨论】:

    • 感谢它使用第二种方法 data.import_date = new Date();而不是那个......它抱怨 IN_DATE_FORMAT.format 无法识别 IN_DATE_FORMAT
    • data.import_date = new Date() 使用这种方法,性能会更耗时...
    • @Symonds - 在您的情况下,它将是 InstrumentMasterData.IN_DATE_FORMAT 而不仅仅是 IN_DATE_FORMAT。我也更新了答案。
    • 你的意思是在我为变量 data.effective_date 创造价值的问题中也没有必要这样做吗?但是在这种情况下我该如何处理空日期值?
    • 你应该像data.effective_date = allocDate;一样简单地这样做。如果allocDatenull,则变量data.effective_date 将被分配null,如果allocDate 具有某个值,则将其分配给data.effective_date。如果有任何进一步的疑问/问题,请随时发表评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多