Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用SimpleDataFormat格式化日期时出现NullPointerException_Android_Nullpointerexception_Simpledateformat - Fatal编程技术网

Android 使用SimpleDataFormat格式化日期时出现NullPointerException

Android 使用SimpleDataFormat格式化日期时出现NullPointerException,android,nullpointerexception,simpledateformat,Android,Nullpointerexception,Simpledateformat,这是获取空指针异常的代码: SimpleDateFormat df = new SimpleDateFormat("MMMM dd, yyyy"); String temp = df.format(load.getDeliveryDate()); System.out.println(temp); date.setText(temp); 这是我创建随机日期(用于测试数据)的代码: 我最初在为日期项设置文本的行上遇到错误。现在,我的日期格式声明行也出现了一个错误 我已经在检查加载,以确保它不是空

这是获取空指针异常的代码:

SimpleDateFormat df = new SimpleDateFormat("MMMM dd, yyyy");
String temp = df.format(load.getDeliveryDate());
System.out.println(temp);
date.setText(temp);
这是我创建随机日期(用于测试数据)的代码:

我最初在为日期项设置文本的行上遇到错误。现在,我的日期格式声明行也出现了一个错误

我已经在检查加载,以确保它不是空的。它是一个包含日期属性的自定义类

Logcat输出(重建后):

不推荐使用新日期(整年、整月、整日)。你可以改用公历

public static void main(String[] args) {
    SimpleDateFormat df = new SimpleDateFormat("MMMM dd, yyyy");
    String temp = df.format(randomDate());
    System.out.println(temp);
}

private static Date randomDate(){
    int month, year, day;  
    Random call = new Random();  
    month = call.nextInt(11); // month -> 0 to 11 for gregorian calendar
    year = call.nextInt(2012);
    day  = call.nextInt(31);
    GregorianCalendar cal = new GregorianCalendar();
    cal.set(Calendar.YEAR, year);
    cal.set(Calendar.DAY_OF_MONTH, day);
    cal.set(Calendar.MONTH, month);
    Date toReturn = cal.getTime();
    System.out.println(toReturn.toString());
    return toReturn;
}
如果获得NullPointerException,则该字段必须为null。只用

 if(date != null)
       date.setText(temp);
不推荐使用新日期(整年、整月、整日)。你可以改用公历

public static void main(String[] args) {
    SimpleDateFormat df = new SimpleDateFormat("MMMM dd, yyyy");
    String temp = df.format(randomDate());
    System.out.println(temp);
}

private static Date randomDate(){
    int month, year, day;  
    Random call = new Random();  
    month = call.nextInt(11); // month -> 0 to 11 for gregorian calendar
    year = call.nextInt(2012);
    day  = call.nextInt(31);
    GregorianCalendar cal = new GregorianCalendar();
    cal.set(Calendar.YEAR, year);
    cal.set(Calendar.DAY_OF_MONTH, day);
    cal.set(Calendar.MONTH, month);
    Date toReturn = cal.getTime();
    System.out.println(toReturn.toString());
    return toReturn;
}
如果获得NullPointerException,则该字段必须为null。只用

 if(date != null)
       date.setText(temp);

根据您发布的堆栈跟踪,日期格式不为空,但日期(可能)为空

堆栈跟踪的这一行告诉我们这是格式化日期的问题。但它也告诉我们format对象存在于此。我们知道该对象是用字符串(而不是空指针)初始化的,这样的库中的内部错误非常罕见

因此,
load.getDeliveryDate()
调用返回的
null
日期可能有问题。你还没有发布这篇文章,所以我不能发表评论

您在问题中描述:

我最初在设置文本的行上遇到一个错误 我的约会项目。现在我的日期格式也出现了错误 申报行

由于这显然不能为null,因此设备上运行的代码与IDE(Eclipse?)中运行的代码之间似乎不匹配


这种情况时有发生。由于某些原因,应用程序不会使用某些或所有类的新版本进行更新。当你得到任何证据证明这已经发生了(你看起来是这样的),最好的办法是完全卸载应用程序,并进行完整的项目清理。之后,当您尝试运行应用程序时,它会将完整的干净副本推送到设备上,这将使调试更加容易。

根据您发布的堆栈跟踪,日期格式不是空的,但日期(可能)是空的

堆栈跟踪的这一行告诉我们这是格式化日期的问题。但它也告诉我们format对象存在于此。我们知道该对象是用字符串(而不是空指针)初始化的,这样的库中的内部错误非常罕见

因此,
load.getDeliveryDate()
调用返回的
null
日期可能有问题。你还没有发布这篇文章,所以我不能发表评论

您在问题中描述:

我最初在设置文本的行上遇到一个错误 我的约会项目。现在我的日期格式也出现了错误 申报行

由于这显然不能为null,因此设备上运行的代码与IDE(Eclipse?)中运行的代码之间似乎不匹配


这种情况时有发生。由于某些原因,应用程序不会使用某些或所有类的新版本进行更新。当你得到任何证据证明这已经发生了(你看起来是这样的),最好的办法是完全卸载应用程序,并进行完整的项目清理。之后,当您尝试运行应用程序时,它会将一个完整的干净副本推送到设备上,这将使调试更加容易。

load.getDeliveryDate()加载
的值是多少?它是空的吗?如果是这样,为什么要从空类调用函数?从
load.getDeliveryDate()
调用
load
的值是多少?它是空的吗?如果是这样,为什么要从null类调用函数?出于某种原因,load.getDeliveryDate()返回null。我做了一个检查,正在调用正在工作的randomDate()。出于某种原因,load.getDeliveryDate()返回null。我开了一张支票,正在回忆起正在工作的randomDate()。
04-30 12:56:10.423: E/AndroidRuntime(8212):     at java.text.DateFormat.format(DateFormat.java:376)