如何将java.util.date初始化为空

99m*_*aas 16 java

在初始化java.util.Date变量为空时,我需要你的帮助.当我正在运行页面时,如果我没有选择任何日期,它会显示nullpointerexception.

代码是:

private java.util.Date date2;
Run Code Online (Sandbox Code Playgroud)

我试图将该变量设为空,但它不起作用>

private java.util.Date date2;

if (date2==null || date2.equals(""))
date2="";
Run Code Online (Sandbox Code Playgroud)

但是,随着初始化:

 private java.util.Date date2= new java.util.Date(0,0,0);
Run Code Online (Sandbox Code Playgroud)

上面的代码将给出一个我不想要它的默认值.

Bli*_*lip 14

java.util.Date的实例存储日期.那么如何在其中存储任何内容或将其清空?它只能存储对实例的引用java.util.Date.如果你这样做null意味着它没有引用任何实例java.util.Date.

您已尝试date2="";通过此语句执行的操作,并希望将实例引用String到要存储的变量中java.util.Date.这是不可能的,因为Java是强类型语言.

编辑

看到发布到LastFreeNickname答案的评论后

我有一个表单,文本框中的日期文本框应该默认为空白,但是如果用户没有输入任何内容,在提交数据时,它应该接受它

我建议您检查文本框是否为空.如果它是空的,那么您可以将默认日期存储在变量或当前日期中,也可以null按如下所示进行分配:

if(textBox.getText() == null || textBox.getText().equals(""){
    date2 = null; // For Null;
    // date2 = new Date(); For Current Date
    // date2 = new Date(0); For Default Date
}
Run Code Online (Sandbox Code Playgroud)

此外,我可以假设,因为您要求用户在a中输入日期TextBox,您使用a DateFormat来解析输入的文本TextBox.如果是这种情况,你可以简单地调用,如果写入日期的格式不正确或是空字符串dateFormat.parse(),则抛出a ParseException.在catch块中,您可以将上述语句如下所示:

try{
    date2 = dateFormat.parse(textBox.getText());
}catch(ParseException e){
    date2 = null; // For Null;
    // date2 = new Date(); For Current Date
    // date2 = new Date(0); For Default Date
}
Run Code Online (Sandbox Code Playgroud)

  • `new Date(0)` 非常有用! (2认同)

i_a*_*ero 6

IMO,你不能创建一个空的Date(java.util).您可以Date使用null值创建对象,并可以进行空检查.

 Date date = new Date(); // Today's date and current time
 Date date2 = new Date(0); // Default date and time
 Date date3 = null; //Date object with null as value.
 if(null != date3) {
    // do your work.
 }
Run Code Online (Sandbox Code Playgroud)